2013-09-01

1-5 SWF

Shockwave 本來是 Macromedia 使用在 Director 上的一種多媒體技術,可以將聲音、動畫、圖像、Script(Lingo)放在一個壓縮過的檔案裡。Director 格式的 Shockwave 在網路環境並沒有很成功,主要原因包括 Director 使用的是點陣圖(目前 Director 也可以和 Flash 結合),製作出來的檔案體積無法壓到很小,而且其播放器的體積對當時而言算蠻大的。

但是,Macromedia 利用 Shockwave 的經驗推出 Flash(Shockwave Flash),由於簡單向量圖所佔的體積很小,而且 Flash Player 也很小。很快地,體積小、有趣的 Flash 動畫如野火般遍佈 WWW 的世界。

Macromedia 後來公佈了 SWF 檔案的格式,以利其它協力公司開發相關的軟體,你可以在「http://www.adobe.com/licensing/developer/」下載 SWF 檔案格式的規格書。基本上,SWF 檔案的格式和開發 Flash ActionScript 應用程式是不同層面的問題,你可以完全不了解 SWF 的格式,也可以開發出頂級的 Flash 應用程式。在此我們來了解一下 FLA 檔編譯成 SWF 檔的一些觀念。

不論是以 include 匯入某個 AS 檔或是以 import 引入一個 AS 類別檔,在發佈成 SWF 檔之後,AS 檔和 FLA 檔的資訊都會被放到 SWF 檔裡面。只要有 SWF 就可以播放整個影片,而不需要 AS 檔。

編譯成 SWF 檔

將 FLA 編譯成 SWF 後,ActionScript 會被編譯成 Bytecode(位元組碼)。Bytecode是一種可以讓 Flash Player 快速解譯成機器碼的格式,因此 Bytecode 比 Text 要來得好。由於 Bytecode 不是機器碼,所以也很容易被反組譯成 Text(ActionScript程式碼)。

目前還未有 AS3 的反組譯軟體出現(目前已經有了哦),不過相信不久的將來會有公司推出。AS2  的反組譯較為著名的有 Buraks.com(http://www.buraks.com/asv/)的 ActionScript Viewer 和 SourceTec Software(http://www.sothink.com/product/flashdecompiler/)的 Sothink SWF Decompiler,這些軟體並非免費軟體。在此筆者並不鼓勵使用 ActionScript 反組譯器,但是一定要知道有這類的東西存在。

相對於反組譯軟體,站在保護源碼的角度,我們可以使用擾亂器(obfuscator)。擾亂器主要是針對有意義的變數名或識別字,利用隨機字串替代,如此即使AS被反組譯了,也不容易被看懂。你可以在 Genable.com(http://www.genable.com/aso/)找到一個免費的 AS2 擾亂器。

另外,SWC 檔是包含 SWF 的 ZIP 壓縮檔,可以方便組件的散佈,同時保有不公開源碼的功能。

目錄

沒有留言:

FB 留言