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