想必有些朋友看過一些網路雜誌網站提供的雜誌製作軟體,那些軟體可以與Flash互動然後產生Flash的網路雜誌或者相簿。
我不懂他們怎麼做到的,Flash的擴充API不知道有沒有提供儲存Flash檔案中某個MovieClip對象的介面。。。我東看西看好像也沒看到,於是我就研究起Flash檔案格式來了。
看到網上有一些SWF檔案產生或者轉換的開源項目,大多都是C++和Java的,唯一看到一個C#的是在另外一個SWF 的C++類庫基礎上做的,並且使用的是Mono的C#開發。
於是我就想自己封裝一個.NET版的SWF類庫,這個類庫提供產生SWF檔案和解析SWF檔案的功能。比如在ASP.NET頁面上就可以動態產生Flash檔案了,又或者可以使用這個類庫自己作一個Flash雜誌製作軟體,嘿嘿,想得好像美美的。
看看最新的Flash8的檔案格式文檔,裡面羅列了一大堆結構體,資料類型,標籤聲明等等。我這星期把它們都提取出來分到不同類檔案裡,發現總共100多個檔案,看了我是頭暈眼花,當我做完SWF檔案頭的封裝後都不知道該繼續封裝哪些東西了。
後來看了Script SWF (一個開源的C++項目,它可以通過腳步建立SWF檔案)中的SWF檔案格式介紹後來了點靈感,我決定根據SWF檔案的發展曆史來封裝我的類庫,從1.0版本的SWF檔案開始一直封裝到最新版。
項目第一期需要封裝的tag有:
FileHeader,End,ShowFrame,DefineShape,FreeCharacter,PlaceObject,RemoveObject,DefineBits
DefineButton,JPEGTables,SetBackgroundColor。DefineFont,DefineText ,DoAction,DefineFontInfo
第一期需要封裝的基礎結構有:
Rect,Tag,Morph_Shape_With_Style,Shape_With_Style,Styles,Shape_Record
Styles_Count,Matrix,Color_Transform,Button,swf_action,Rgb,Shape,Text_Record
註:上面的命名在實現是可能會有所改變
我最近公司項目比較趕所以業餘時間不多,一個人做可能要花很長時間。 我希望對這個類庫有興趣的朋友不妨和我聯絡,可以考慮組一個開源項目團隊,大家分工協作完成這個類庫的封裝。
附錄:Alexis' SWF Reference