莊惠陽
(1.上海旅游高等專科學(xué)校,上海 201418;2.上海師范大學(xué) 旅游學(xué)院,上海 200234)
電子雜志模板反編譯技術(shù)研究
莊惠陽1,2
(1.上海旅游高等??茖W(xué)校,上海 201418;2.上海師范大學(xué) 旅游學(xué)院,上海 200234)
電子雜志是在繼承與發(fā)展紙質(zhì)雜志的基礎(chǔ)上,借助信息技術(shù)聚合多媒體元素,實現(xiàn)演示并改善閱讀的電子出版物。在陳述電子雜志模板可重用原理之后,指出Sothink SWF Decompiler、ZineMaker進(jìn)行雜志模板反編譯的方法,即主要應(yīng)用Sothink SWF Decompiler軟件,反編譯圖文模板、視頻模板、錄音模板的方法,以及應(yīng)用ZineMaker模板制作器進(jìn)行雜志模板反編譯的方法。
電子雜志;反編譯模板;ZineMaker
電子雜志舊模板只允許替換其中的文字、圖像、視頻、音樂,雜志制作者所能企及的風(fēng)格,只能在已有模板中尋找。如此苛刻的限制,導(dǎo)致制作、編輯存在難以克服的瓶頸。對于初學(xué)者而言,從零開始編程則不易;要設(shè)計既符合個人風(fēng)格,又不同于舊模板的雜志,的確需要走出難、易之間的瓶頸。如何才能走出這一瓶頸?答案可在重新制作雜志模板,或在反編譯雜志模板中尋找。這里所說的“反編譯”,是還原雜志內(nèi)“包裹”的原始數(shù)據(jù),不修改過多的源代碼,實現(xiàn)諸多模板的分解與組合;雖然在反編譯之后,圖文內(nèi)容、位置上略微有所偏差,但總體而言還是一致的[1-2]。
重新制作電子雜志模板是一項另起爐灶的苦力活,對于低成本、少回報的項目而言,不值得浪費時間去折騰。反編譯電子雜志模板則能節(jié)省大量時間,高效地完成一本雜志的制作。反編譯電子雜志模板汲取了諸多高手的創(chuàng)意,在此基礎(chǔ)上融匯個人創(chuàng)意,重新拼出新的模板。反編譯的道路值得大多數(shù)雜志愛好者去嘗試、去開拓[3-4]。
電子雜志成體系、分目錄,有步驟、分層次,說明雜志模板符合可重用原理。什么是可重用原理?Robby Robson定義道:“在多種情境中,以多種方式多次使用同一資源的能力??芍赜眯园ㄩ_發(fā)者作為基本單位用于其工作中的能力[5]?!彪S著網(wǎng)絡(luò)上駐留的資源不斷豐富起來,教育技術(shù)工作者應(yīng)充分挖掘其中的可重用性,為支援教師的工作助力,從而更好地服務(wù)學(xué)習(xí)者。學(xué)習(xí)者獲得的好處是可以使用更多的學(xué)習(xí)資源,擁有更多的機(jī)會,尋找適合自己的學(xué)習(xí)資源。學(xué)習(xí)資源的可重用性非常具有吸引力,但卻不容易被實現(xiàn)。本文著重以雜志模板的可重用性為例,論述如何應(yīng)用電子雜志模板反編譯技術(shù),從而實現(xiàn)模板的可重用性。
電子雜志軟件是合成軟件,合成的對象涉及文字、圖形、圖像、視頻、動畫、聲音等多媒體元素。無須編程的元素比較容易獲取,有賴編程的元素較難獲取,工程文件靠檢索未必盡如己意。即使檢索到工程文件,也要加以反編譯。針對多媒體元素的可重用性,主要明確以下4項:①明確多媒體元素的相應(yīng)關(guān)鍵詞以及關(guān)鍵詞組合,從而便于模糊檢索與精確檢索;②明確多媒體元素的文件擴(kuò)展名、像素尺寸等是否符合電子雜志軟件的要求,并下載所需的文件至本機(jī)硬盤上。絕對地址與相對地址網(wǎng)頁下的多媒體元素,須依靠專門的下載工具;③明確下載的多媒體元素是否存在工程文件,否則須依靠專門的反編譯工具;④明確在支援學(xué)習(xí)資源的具體任務(wù)中,所下載、反編譯的多媒體元素能否被重用,否則須獨立創(chuàng)作符合要求的多媒體元素。
拆分舊模板,需要五大軟件——ZineMaker制作軟件、Sothink SWF Decompiler、Flash制作軟件、ZineMaker模板制作器、WinMPG轉(zhuǎn)換軟件。ZineMaker發(fā)揮了提取文件的作用;Sothink SWF Decompiler、Flash負(fù)責(zé)文件的修改與編輯;模板制作器負(fù)責(zé)模板的重新生成;WinMPG轉(zhuǎn)換軟件則讓絕大多數(shù)的文件格式相互轉(zhuǎn)換,以備隨時調(diào)用。
2.1 反編譯雜志模板流程
Sothink SWF Decompiler(碩思閃客精靈)是一款專業(yè)的Flash動畫反編譯軟件,不僅能將SWF轉(zhuǎn)換為flv,通過反編譯Flash動畫,把SWF文件的文字、圖像、ActionScript等提取出來;還能實現(xiàn)以下功能——完全支持動作腳本AS 3.0、在IE和Firefox瀏覽器中捕捉SWF、轉(zhuǎn)換包含組件的SWF為FLA文件、將FLEX項目生成的SWF文件導(dǎo)出為FLEX項目文件等。
企圖反編譯雜志模板,就必須知曉ZineMaker軟件生成雜志時所借用的臨時文件夾。假設(shè)預(yù)先將ZineMaker軟件安裝在E盤下面的程序文件夾里,那么臨時文件夾的默認(rèn)路徑為——E:Program FilesSunbirdineMaker 2006 emp。利用Sothink SWF Decompiler反編譯雜志模板的流程主要包含以下幾步:
步驟1:將所要反編譯的若干個模板頁面(E:Program FilesSunbirdineMaker 2006 emplate里擴(kuò)展名為tpf的模板頁面)添加到封面模板頁面下方。隨后再添加一些無關(guān)主題的Flash頁面,用來延長雜志的生成時間,從而保證temp臨時文件夾較長時間地駐留SWF文件。
步驟2:在桌面上或任何路徑下新建一個文件夾,用來轉(zhuǎn)移生成雜志時所駐留的SWF文件。此時,打開temp臨時文件夾。點擊工具欄“生成”→“生成雜志”,并立即轉(zhuǎn)到temp臨時文件夾,迅速選擇所駐留的SWF文件,拷貝到新建文件夾內(nèi)。
步驟3:關(guān)閉生成電子雜志的頁面,點擊Sothink SWF Decompiler快捷方式。利用Sothink SWF Decompiler反編譯軟件,打開新建文件夾內(nèi)的文件,將page_01.SWF……若干個模板分別打開。如圖1所示,點擊Export To FLA/FLEX,則轉(zhuǎn)換整個模板為Flash文件;點擊Export Resource,則轉(zhuǎn)換所勾選的某些多媒體元素為Flash文件。
圖1 利用Sothink SWF Decompiler反編譯電子雜志模板
試圖獲取SWF文件,一般是進(jìn)入安裝目錄,將temp文件夾拖至桌面,訣竅在于點擊生成雜志后,迅速將temp文件夾拖至桌面。軟件的默認(rèn)安裝路徑是D:Program FilesSunbirdineMaker 2006,點擊生成雜志,進(jìn)入temp文件夾就可以看到SWF文件[6]。
2.2 反編譯圖文模板
反編譯雜志模板,須利用Macromedia Flash或Adobe Flash CS的不同版本[7],打開Flash,新建文件。ZineMaker不支持AS 3.0,按CTRL+F3(快捷鍵)或按窗口-屬性-屬性,可直接地、方便地調(diào)用屬性面板。屬性面板有幾個地方需要注意,其中一個是大小,這里的大小決定了做成的雜志模板大小,比如要做950×650px的內(nèi)頁模板,就得設(shè)置成950×650px;要做800×600px的內(nèi)頁模板,就得設(shè)置成800×600px。另外,將幀頻設(shè)置成24,是因為適應(yīng)ZineMaker的 Flash幀頻是24。
運(yùn)行Flash不同版本的軟件,單擊文件→導(dǎo)入→導(dǎo)入到舞臺,然后選擇、導(dǎo)入備好的圖片。導(dǎo)入后,單擊選擇工具,點擊導(dǎo)入的圖片,然后使用快捷鍵Ctrl+k,打開對齊工具,選擇垂直居中和水平居中。然后,在圖片上點擊右鍵,選擇、轉(zhuǎn)換為圖形元件。圖片中心就會出現(xiàn)一個帶準(zhǔn)心的圓點。隨后,單擊插入圖層按鈕,插入一個新的圖層。
單擊文字按鈕,在舞臺處拖一條文字框,輸入文字即可。在屬性處,設(shè)置文字為“動態(tài)文本”,字體為“宋體”。靜態(tài)文字在模板做成后,不能加以修改,宋體和黑體等系統(tǒng)字體是系統(tǒng)自帶的,雖在本地設(shè)置,移至別處,依然顯示為宋體。最后,點擊文件→導(dǎo)出→導(dǎo)出影片,即可導(dǎo)出SWF文件[8]。
Flash鏈接有兩種方式:文字鏈接、按鈕鏈接。關(guān)于文字鏈接,在輸入一段后,選中鏈接的文字,鏈接本地文件。文字鏈接的類型如圖片(gif、jpg、bmp等)、文字表格(doc、xls等)、網(wǎng)頁文件(htm等)。關(guān)于按鈕鏈接,選定一個按鈕后,右鍵點“動作”,代碼如下:
on (release) {
getURL("鏈接文件的地址");
}
2.3 反編譯視頻模板
ZineMaker沒有專門的錄音模板,只能利用Flash反編譯其它類型的模板,再增加錄音功能。如果僅制作超鏈接錄音機(jī)可執(zhí)行文件的文字,在SWF狀態(tài)下可以打開,卻不能在生成雜志之后打開。如果僅采納共用庫的按鈕,并在腳本編輯器中輸入fscommand("exec","錄音機(jī)所在的文件路徑"),企圖用fscommand調(diào)用可執(zhí)行程序,只能發(fā)布成Windows放映文件(.exe),不能加載到雜志制作軟件中。在經(jīng)歷一番嘗試之后,總算找到破解的方法。這一方法就是在電子雜志中實現(xiàn)錄音功能所依據(jù)的3個步驟:
步驟1:插入新建元件,命名為“反編譯之視頻”,類型選擇“影片剪輯”。Ctrl+F7打開Flash組件,如圖2所示,拖放FLV Playback-Player下方的FLV Playback,到“反編譯之視頻”所在的舞臺上。視頻之所以不被直接導(dǎo)入,并在時間軸上播放,而采用Flash自帶的FLV Playback組件,是為了在電子雜志附件里攜帶視頻時,能夠被FLV Playback組件所調(diào)用。FLV Playback組件有許多播放器皮膚可供選擇,其中選用皮膚(skin)會生成相應(yīng)的SWF文件(譬如SteelExternalAll.swf),該文件必須作為附加文件,添加到雜志中。
步驟2:將“反編譯之視頻”元件拖放到某個空置的圖層上,點擊視頻,在屬性寬、高數(shù)值上方進(jìn)行命名,輸入名稱為“thisFLV Playback”。打開動作面板,點擊該圖層的任何一幀,并輸入以下腳本:
thisFLVPlayback.contentPath = _root.getFLVPath("6 lip sync.flv");
6 lip sync.flv是一個視頻文件(video.flv)。值得說明的是,不必額外增加一個代碼層,也不必重復(fù)拷貝contentPath腳本。
圖2 FLV Playback組件
步驟3:調(diào)試影片,生成SWF文件。此時,跳出兩行提示出錯的輸出文字:“null url sent to VideoPlayer.load”。不必搭理,徑直將該SWF文件導(dǎo)入到雜志頁面上,以及將flv格式的視頻文件導(dǎo)入到附加文件中。與此同時,會自動地形成SteelExternalAll.swf等播放器皮膚SWF文件。生成雜志后,就能脫離本機(jī)控制視頻文件的播放、停止與進(jìn)度了。
有時需要自定義flv播放器風(fēng)格??砂凑找韵虏襟E:
步驟1:視頻盡量不要直接導(dǎo)入并在時間軸上播放,而是采用flash8自帶的FLV Playback組件,該組件有許多播放器皮膚可供選擇(注意選用皮膚會生成相應(yīng)的SWF文件,該文件必須作為附加文件添加進(jìn)雜志),當(dāng)然也可以不選擇皮膚,直接自己用代碼控制播放。
步驟2:FLV Playback播放的視頻是用flash8格式壓縮的flv視頻。
步驟3:FLV Playback視頻不在參數(shù)里直接連接,例如:FLV Playback命名為myFLV Playback,視頻文件為同一目錄下的video.flv,在主場景中myFLV Playback出現(xiàn)的幀上,輸入如下代碼:
myFLVPlayback.contentPath=_root.getFLVPath("video.flv");
最后,在zinemake左下方小窗口里,右鍵菜單第一個,添加附加文件,選中FLV文件和皮膚文件[9]。
2.4 反編譯錄音模板
ZineMaker沒有專門的錄音模板,只能利用Flash反編譯其它類型的模板,再增加錄音功能。如果僅制作超鏈接錄音機(jī)可執(zhí)行文件的文字,在SWF文件狀態(tài)下可以打開,卻不能在生成雜志之后打開。如果僅采納共用庫的按鈕,并在腳本編輯器中輸入fscommand("exec","錄音機(jī)所在的文件路徑"),企圖用fscommand調(diào)用EXE可執(zhí)行程序,也只能發(fā)布成Windows放映文件(.exe),不能加載到電子雜志制作軟件中。在經(jīng)歷一番嘗試之后,找到破解的方法,即依據(jù)以下步驟,實現(xiàn)錄音功能:
步驟1:打開Flash軟件,進(jìn)入需添加錄音功能的場景,在舞臺上輸入文本“Record”,并將文字轉(zhuǎn)換為按鈕元件,命名為“錄音功能”。在其下方放置一個指示圖標(biāo)“”。
步驟2:右鍵依次點擊開始—所有程序—附件—娛樂—錄音機(jī),查找Windows系統(tǒng)錄音機(jī)所在的目標(biāo)(T)。如圖3所示,在Flash舞臺上選擇“錄音功能”元件,打開動作面板,輸入以下腳本:
圖3 錄音功能腳本
on (release) {
getURL("file:///C:/Windows/system32/sndrec32.exe","_blank");
}
在這里,應(yīng)當(dāng)把目標(biāo)路徑的斜杠()改為反斜杠(/)。sndrec32.exe是Windows XP自帶的錄音機(jī)軟件。
步驟3:調(diào)試影片,生成SWF文件,并導(dǎo)入到雜志制作軟件中。生成雜志后,點擊“Record”,就能打開錄音機(jī),保存所錄的聲音,形成擴(kuò)展名為WAV的音頻文件。
利用ZineMaker模板制作器,制作可重復(fù)套用的模板。ZineMaker模板制作器可把自制的SWF文件做成tpf或者tmf文件。打開模板制作器,新建模板,打開要轉(zhuǎn)換的SWF文件。模板默認(rèn)類型是“雜志模板”,即封面模板。設(shè)置頁面大小和窗口大小,若是750×550 px的內(nèi)頁,就是普通的封面模板,頁面大小填750×550 px,窗口大小填800×600 px。若不是封面模板,就得選擇下拉列表的內(nèi)頁模板,無須設(shè)置參數(shù)。右邊的“模板信息”處有一個縮略圖選項,這個縮略圖是在模板查看器和ZineMaker圖片查看方式下顯示。打開SWF文件,用截圖工具截下來保存好,然后導(dǎo)入即可。在圖片文字變量處,勾選須以后在ZineMaker里可以替換的元素或者變量,沒有打勾的圖片或者文字不會出現(xiàn)在ZineMaker里面。針對使用模板制作器制作啟動畫面的初學(xué)者,在此予以說明。
步驟1:生成的啟動畫面文件位于所導(dǎo)入的SWF源文件所在目錄,擴(kuò)展名為.stp,將其復(fù)制ZineMaker安裝目錄中的“startup”文件夾中,隨后打開ZineMaker主程序的雜志設(shè)置對話框,在“啟動畫面”標(biāo)簽的“選擇文件”下拉列表中,就看到剛制作的啟動畫面文件。
步驟2:選擇制作成啟動畫面的SWF源文件,不要太復(fù)雜,因為ZineMaker定義的啟動畫面可能不支持部分腳本命令,無法實現(xiàn)“_parent.stop();”、“_parent.play();”。制作的啟動畫面一般用靜態(tài)圖片在ZineMaker中顯示出來,如果做動畫,只是在啟動預(yù)覽時觀看,合成時會出錯,即ZineMaker制作模板時提示錯誤“is not a valid integer value”。另外,啟動界面的時間似乎也無法控制。出現(xiàn)這
個錯誤,是因為制作模板時,選擇將文本呈現(xiàn)為HTML添加動態(tài)文本,因此要取消HTML,如圖4所示,Ab字樣的是文本可選的控制開關(guān)。選中Ab字樣時,Ab字樣周圍會有一個方框,Ab字樣的旁邊就是HTML呈現(xiàn)的控制按鈕,取消HTML就可以生成模板,但功能在模版制作方面比較少用。
圖4 文本可選的控制開關(guān)
除了運(yùn)用ZineMaker模板制作器,有些雜志制作愛好者還使用Flash吸血鬼和pkZine,將雜志內(nèi)的Flash反編譯出來,直接用于制作新的電子雜志。pkZine屬于靜態(tài)提取,已經(jīng)全面超越Flash吸血鬼,能解析雜志中所有的多媒體元素。作為綜合性雜志解包工具,pkZine用于解析雜志制作軟件生成的EXE可執(zhí)行程序,例如,ZineMaker、IE Book超級精靈、AGE Flash Packer雅致打包工具等,從雜志中提取原始的多媒體元素(擴(kuò)展名為SWF、JPG等的文件)。
[1] 莊惠陽.電子雜志在課堂教學(xué)中的應(yīng)用研究——以小學(xué)語文閱讀課為例[D].上海:上海師范大學(xué),2008.
[2] 萬凡,牟蕓蕓.電子雜志設(shè)計[M].昆明:云南大學(xué)出版社,2008.
[3] 優(yōu)設(shè)計.雜志創(chuàng)意裝幀設(shè)計[M].北京:電子工業(yè)出版社,2011.
[4] [英]夏洛特·里弗斯.雜志創(chuàng)意裝幀設(shè)計[M].鄭文慧,譯.北京:電子工業(yè)出版社,2011.
[5] [美]羅伯特·瑞澤,J·V·鄧普西.教學(xué)設(shè)計和技術(shù)的趨勢與問題[M].第2版.王為杰,譯.上海:華東師范大學(xué)出版社,2008.
[6] ZineMaker模板破解超簡單[EB/OL].http://hi.baidu.com/lzj1009/blog/item/90e9ebfe972171305c600846.html.
[7] 制作簡單ZineMaker文字模板[EB/OL].http://www.tigerok.cn/post/ZineMaker/21.html.
[8] ZineMaker 2007雜志制作遇到的問題[EB/OL].http://wenku.baidu.com/view/58edd30df78a6529647d5319.html.
[9] 電子雜志制作教程[EB/OL].http://www.360doc.com/content/10/1119/20/4676002_70764893.shtml.
(責(zé)任編輯:孫 娟)
上海師范大學(xué)旅游學(xué)院/上海旅游高等??茖W(xué)校校(院)級科研項目(KY2016-CL5)
莊惠陽(1977-),男,福建泉州人,碩士,上海旅游高等??茖W(xué)校助理研究員,研究方向為交互語言學(xué)習(xí)環(huán)境中的績效促進(jìn)、電子雜志模板反編譯技術(shù)、虛擬現(xiàn)實技術(shù)。
10.11907/rjdk.162419
TP319
A
1672-7800(2017)003-0131-04