莊惠陽
(1.上海旅游高等專科學校,上海 201418;2.上海師范大學 旅游學院,上海 200234)
電子雜志模板反編譯技術研究
莊惠陽1,2
(1.上海旅游高等專科學校,上海 201418;2.上海師范大學 旅游學院,上海 200234)
電子雜志是在繼承與發展紙質雜志的基礎上,借助信息技術聚合多媒體元素,實現演示并改善閱讀的電子出版物。在陳述電子雜志模板可重用原理之后,指出Sothink SWF Decompiler、ZineMaker進行雜志模板反編譯的方法,即主要應用Sothink SWF Decompiler軟件,反編譯圖文模板、視頻模板、錄音模板的方法,以及應用ZineMaker模板制作器進行雜志模板反編譯的方法。
電子雜志;反編譯模板;ZineMaker
電子雜志舊模板只允許替換其中的文字、圖像、視頻、音樂,雜志制作者所能企及的風格,只能在已有模板中尋找。如此苛刻的限制,導致制作、編輯存在難以克服的瓶頸。對于初學者而言,從零開始編程則不易;要設計既符合個人風格,又不同于舊模板的雜志,的確需要走出難、易之間的瓶頸。如何才能走出這一瓶頸?答案可在重新制作雜志模板,或在反編譯雜志模板中尋找。這里所說的“反編譯”,是還原雜志內“包裹”的原始數據,不修改過多的源代碼,實現諸多模板的分解與組合;雖然在反編譯之后,圖文內容、位置上略微有所偏差,但總體而言還是一致的[1-2]。
重新制作電子雜志模板是一項另起爐灶的苦力活,對于低成本、少回報的項目而言,不值得浪費時間去折騰。反編譯電子雜志模板則能節省大量時間,高效地完成一本雜志的制作。反編譯電子雜志模板汲取了諸多高手的創意,在此基礎上融匯個人創意,重新拼出新的模板。反編譯的道路值得大多數雜志愛好者去嘗試、去開拓[3-4]。
電子雜志成體系、分目錄,有步驟、分層次,說明雜志模板符合可重用原理。什么是可重用原理?Robby Robson定義道:“在多種情境中,以多種方式多次使用同一資源的能力。可重用性包括開發者作為基本單位用于其工作中的能力[5]。”隨著網絡上駐留的資源不斷豐富起來,教育技術工作者應充分挖掘其中的可重用性,為支援教師的工作助力,從而更好地服務學習者。學習者獲得的好處是可以使用更多的學習資源,擁有更多的機會,尋找適合自己的學習資源。學習資源的可重用性非常具有吸引力,但卻不容易被實現。本文著重以雜志模板的可重用性為例,論述如何應用電子雜志模板反編譯技術,從而實現模板的可重用性。
電子雜志軟件是合成軟件,合成的對象涉及文字、圖形、圖像、視頻、動畫、聲音等多媒體元素。無須編程的元素比較容易獲取,有賴編程的元素較難獲取,工程文件靠檢索未必盡如己意。即使檢索到工程文件,也要加以反編譯。針對多媒體元素的可重用性,主要明確以下4項:①明確多媒體元素的相應關鍵詞以及關鍵詞組合,從而便于模糊檢索與精確檢索;②明確多媒體元素的文件擴展名、像素尺寸等是否符合電子雜志軟件的要求,并下載所需的文件至本機硬盤上。絕對地址與相對地址網頁下的多媒體元素,須依靠專門的下載工具;③明確下載的多媒體元素是否存在工程文件,否則須依靠專門的反編譯工具;④明確在支援學習資源的具體任務中,所下載、反編譯的多媒體元素能否被重用,否則須獨立創作符合要求的多媒體元素。
拆分舊模板,需要五大軟件——ZineMaker制作軟件、Sothink SWF Decompiler、Flash制作軟件、ZineMaker模板制作器、WinMPG轉換軟件。ZineMaker發揮了提取文件的作用;Sothink SWF Decompiler、Flash負責文件的修改與編輯;模板制作器負責模板的重新生成;WinMPG轉換軟件則讓絕大多數的文件格式相互轉換,以備隨時調用。
2.1 反編譯雜志模板流程
Sothink SWF Decompiler(碩思閃客精靈)是一款專業的Flash動畫反編譯軟件,不僅能將SWF轉換為flv,通過反編譯Flash動畫,把SWF文件的文字、圖像、ActionScript等提取出來;還能實現以下功能——完全支持動作腳本AS 3.0、在IE和Firefox瀏覽器中捕捉SWF、轉換包含組件的SWF為FLA文件、將FLEX項目生成的SWF文件導出為FLEX項目文件等。
企圖反編譯雜志模板,就必須知曉ZineMaker軟件生成雜志時所借用的臨時文件夾。假設預先將ZineMaker軟件安裝在E盤下面的程序文件夾里,那么臨時文件夾的默認路徑為——E:Program FilesSunbirdineMaker 2006 emp。利用Sothink SWF Decompiler反編譯雜志模板的流程主要包含以下幾步:
步驟1:將所要反編譯的若干個模板頁面(E:Program FilesSunbirdineMaker 2006 emplate里擴展名為tpf的模板頁面)添加到封面模板頁面下方。隨后再添加一些無關主題的Flash頁面,用來延長雜志的生成時間,從而保證temp臨時文件夾較長時間地駐留SWF文件。
步驟2:在桌面上或任何路徑下新建一個文件夾,用來轉移生成雜志時所駐留的SWF文件。此時,打開temp臨時文件夾。點擊工具欄“生成”→“生成雜志”,并立即轉到temp臨時文件夾,迅速選擇所駐留的SWF文件,拷貝到新建文件夾內。
步驟3:關閉生成電子雜志的頁面,點擊Sothink SWF Decompiler快捷方式。利用Sothink SWF Decompiler反編譯軟件,打開新建文件夾內的文件,將page_01.SWF……若干個模板分別打開。如圖1所示,點擊Export To FLA/FLEX,則轉換整個模板為Flash文件;點擊Export Resource,則轉換所勾選的某些多媒體元素為Flash文件。

圖1 利用Sothink SWF Decompiler反編譯電子雜志模板
試圖獲取SWF文件,一般是進入安裝目錄,將temp文件夾拖至桌面,訣竅在于點擊生成雜志后,迅速將temp文件夾拖至桌面。軟件的默認安裝路徑是D:Program FilesSunbirdineMaker 2006,點擊生成雜志,進入temp文件夾就可以看到SWF文件[6]。
2.2 反編譯圖文模板
反編譯雜志模板,須利用Macromedia Flash或Adobe Flash CS的不同版本[7],打開Flash,新建文件。ZineMaker不支持AS 3.0,按CTRL+F3(快捷鍵)或按窗口-屬性-屬性,可直接地、方便地調用屬性面板。屬性面板有幾個地方需要注意,其中一個是大小,這里的大小決定了做成的雜志模板大小,比如要做950×650px的內頁模板,就得設置成950×650px;要做800×600px的內頁模板,就得設置成800×600px。另外,將幀頻設置成24,是因為適應ZineMaker的 Flash幀頻是24。
運行Flash不同版本的軟件,單擊文件→導入→導入到舞臺,然后選擇、導入備好的圖片。導入后,單擊選擇工具,點擊導入的圖片,然后使用快捷鍵Ctrl+k,打開對齊工具,選擇垂直居中和水平居中。然后,在圖片上點擊右鍵,選擇、轉換為圖形元件。圖片中心就會出現一個帶準心的圓點。隨后,單擊插入圖層按鈕,插入一個新的圖層。
單擊文字按鈕,在舞臺處拖一條文字框,輸入文字即可。在屬性處,設置文字為“動態文本”,字體為“宋體”。靜態文字在模板做成后,不能加以修改,宋體和黑體等系統字體是系統自帶的,雖在本地設置,移至別處,依然顯示為宋體。最后,點擊文件→導出→導出影片,即可導出SWF文件[8]。
Flash鏈接有兩種方式:文字鏈接、按鈕鏈接。關于文字鏈接,在輸入一段后,選中鏈接的文字,鏈接本地文件。文字鏈接的類型如圖片(gif、jpg、bmp等)、文字表格(doc、xls等)、網頁文件(htm等)。關于按鈕鏈接,選定一個按鈕后,右鍵點“動作”,代碼如下:
on (release) {
getURL("鏈接文件的地址");
}
2.3 反編譯視頻模板
ZineMaker沒有專門的錄音模板,只能利用Flash反編譯其它類型的模板,再增加錄音功能。如果僅制作超鏈接錄音機可執行文件的文字,在SWF狀態下可以打開,卻不能在生成雜志之后打開。如果僅采納共用庫的按鈕,并在腳本編輯器中輸入fscommand("exec","錄音機所在的文件路徑"),企圖用fscommand調用可執行程序,只能發布成Windows放映文件(.exe),不能加載到雜志制作軟件中。在經歷一番嘗試之后,總算找到破解的方法。這一方法就是在電子雜志中實現錄音功能所依據的3個步驟:
步驟1:插入新建元件,命名為“反編譯之視頻”,類型選擇“影片剪輯”。Ctrl+F7打開Flash組件,如圖2所示,拖放FLV Playback-Player下方的FLV Playback,到“反編譯之視頻”所在的舞臺上。視頻之所以不被直接導入,并在時間軸上播放,而采用Flash自帶的FLV Playback組件,是為了在電子雜志附件里攜帶視頻時,能夠被FLV Playback組件所調用。FLV Playback組件有許多播放器皮膚可供選擇,其中選用皮膚(skin)會生成相應的SWF文件(譬如SteelExternalAll.swf),該文件必須作為附加文件,添加到雜志中。
步驟2:將“反編譯之視頻”元件拖放到某個空置的圖層上,點擊視頻,在屬性寬、高數值上方進行命名,輸入名稱為“thisFLV Playback”。打開動作面板,點擊該圖層的任何一幀,并輸入以下腳本:
thisFLVPlayback.contentPath = _root.getFLVPath("6 lip sync.flv");
6 lip sync.flv是一個視頻文件(video.flv)。值得說明的是,不必額外增加一個代碼層,也不必重復拷貝contentPath腳本。

圖2 FLV Playback組件
步驟3:調試影片,生成SWF文件。此時,跳出兩行提示出錯的輸出文字:“null url sent to VideoPlayer.load”。不必搭理,徑直將該SWF文件導入到雜志頁面上,以及將flv格式的視頻文件導入到附加文件中。與此同時,會自動地形成SteelExternalAll.swf等播放器皮膚SWF文件。生成雜志后,就能脫離本機控制視頻文件的播放、停止與進度了。
有時需要自定義flv播放器風格。可按照以下步驟:
步驟1:視頻盡量不要直接導入并在時間軸上播放,而是采用flash8自帶的FLV Playback組件,該組件有許多播放器皮膚可供選擇(注意選用皮膚會生成相應的SWF文件,該文件必須作為附加文件添加進雜志),當然也可以不選擇皮膚,直接自己用代碼控制播放。
步驟2:FLV Playback播放的視頻是用flash8格式壓縮的flv視頻。
步驟3:FLV Playback視頻不在參數里直接連接,例如:FLV Playback命名為myFLV Playback,視頻文件為同一目錄下的video.flv,在主場景中myFLV Playback出現的幀上,輸入如下代碼:
myFLVPlayback.contentPath=_root.getFLVPath("video.flv");
最后,在zinemake左下方小窗口里,右鍵菜單第一個,添加附加文件,選中FLV文件和皮膚文件[9]。
2.4 反編譯錄音模板
ZineMaker沒有專門的錄音模板,只能利用Flash反編譯其它類型的模板,再增加錄音功能。如果僅制作超鏈接錄音機可執行文件的文字,在SWF文件狀態下可以打開,卻不能在生成雜志之后打開。如果僅采納共用庫的按鈕,并在腳本編輯器中輸入fscommand("exec","錄音機所在的文件路徑"),企圖用fscommand調用EXE可執行程序,也只能發布成Windows放映文件(.exe),不能加載到電子雜志制作軟件中。在經歷一番嘗試之后,找到破解的方法,即依據以下步驟,實現錄音功能:
步驟1:打開Flash軟件,進入需添加錄音功能的場景,在舞臺上輸入文本“Record”,并將文字轉換為按鈕元件,命名為“錄音功能”。在其下方放置一個指示圖標“”。
步驟2:右鍵依次點擊開始—所有程序—附件—娛樂—錄音機,查找Windows系統錄音機所在的目標(T)。如圖3所示,在Flash舞臺上選擇“錄音功能”元件,打開動作面板,輸入以下腳本:

圖3 錄音功能腳本
on (release) {
getURL("file:///C:/Windows/system32/sndrec32.exe","_blank");
}
在這里,應當把目標路徑的斜杠()改為反斜杠(/)。sndrec32.exe是Windows XP自帶的錄音機軟件。
步驟3:調試影片,生成SWF文件,并導入到雜志制作軟件中。生成雜志后,點擊“Record”,就能打開錄音機,保存所錄的聲音,形成擴展名為WAV的音頻文件。
利用ZineMaker模板制作器,制作可重復套用的模板。ZineMaker模板制作器可把自制的SWF文件做成tpf或者tmf文件。打開模板制作器,新建模板,打開要轉換的SWF文件。模板默認類型是“雜志模板”,即封面模板。設置頁面大小和窗口大小,若是750×550 px的內頁,就是普通的封面模板,頁面大小填750×550 px,窗口大小填800×600 px。若不是封面模板,就得選擇下拉列表的內頁模板,無須設置參數。右邊的“模板信息”處有一個縮略圖選項,這個縮略圖是在模板查看器和ZineMaker圖片查看方式下顯示。打開SWF文件,用截圖工具截下來保存好,然后導入即可。在圖片文字變量處,勾選須以后在ZineMaker里可以替換的元素或者變量,沒有打勾的圖片或者文字不會出現在ZineMaker里面。針對使用模板制作器制作啟動畫面的初學者,在此予以說明。
步驟1:生成的啟動畫面文件位于所導入的SWF源文件所在目錄,擴展名為.stp,將其復制ZineMaker安裝目錄中的“startup”文件夾中,隨后打開ZineMaker主程序的雜志設置對話框,在“啟動畫面”標簽的“選擇文件”下拉列表中,就看到剛制作的啟動畫面文件。
步驟2:選擇制作成啟動畫面的SWF源文件,不要太復雜,因為ZineMaker定義的啟動畫面可能不支持部分腳本命令,無法實現“_parent.stop();”、“_parent.play();”。制作的啟動畫面一般用靜態圖片在ZineMaker中顯示出來,如果做動畫,只是在啟動預覽時觀看,合成時會出錯,即ZineMaker制作模板時提示錯誤“is not a valid integer value”。另外,啟動界面的時間似乎也無法控制。出現這
個錯誤,是因為制作模板時,選擇將文本呈現為HTML添加動態文本,因此要取消HTML,如圖4所示,Ab字樣的是文本可選的控制開關。選中Ab字樣時,Ab字樣周圍會有一個方框,Ab字樣的旁邊就是HTML呈現的控制按鈕,取消HTML就可以生成模板,但功能在模版制作方面比較少用。

圖4 文本可選的控制開關
除了運用ZineMaker模板制作器,有些雜志制作愛好者還使用Flash吸血鬼和pkZine,將雜志內的Flash反編譯出來,直接用于制作新的電子雜志。pkZine屬于靜態提取,已經全面超越Flash吸血鬼,能解析雜志中所有的多媒體元素。作為綜合性雜志解包工具,pkZine用于解析雜志制作軟件生成的EXE可執行程序,例如,ZineMaker、IE Book超級精靈、AGE Flash Packer雅致打包工具等,從雜志中提取原始的多媒體元素(擴展名為SWF、JPG等的文件)。
[1] 莊惠陽.電子雜志在課堂教學中的應用研究——以小學語文閱讀課為例[D].上海:上海師范大學,2008.
[2] 萬凡,牟蕓蕓.電子雜志設計[M].昆明:云南大學出版社,2008.
[3] 優設計.雜志創意裝幀設計[M].北京:電子工業出版社,2011.
[4] [英]夏洛特·里弗斯.雜志創意裝幀設計[M].鄭文慧,譯.北京:電子工業出版社,2011.
[5] [美]羅伯特·瑞澤,J·V·鄧普西.教學設計和技術的趨勢與問題[M].第2版.王為杰,譯.上海:華東師范大學出版社,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.
(責任編輯:孫 娟)
上海師范大學旅游學院/上海旅游高等專科學校校(院)級科研項目(KY2016-CL5)
莊惠陽(1977-),男,福建泉州人,碩士,上海旅游高等專科學校助理研究員,研究方向為交互語言學習環境中的績效促進、電子雜志模板反編譯技術、虛擬現實技術。
10.11907/rjdk.162419
TP319
A
1672-7800(2017)003-0131-04