SWFをダンプしてみた
SWFの仕様書とHello,worldのダンプを見比べてみた。あいかわらず、アンドキュメントな仕様があるっぽいな。
使ったHello,worldはこんなの。
package{ import flash.display.*; import flash.text.*; public class Hello extends Sprite { public function Hello(){ trace('Hello'); var text:TextField = new TextField(); text.text = 'Hello world!!'; text.autoSize = TextFieldAutoSize.LEFT; this.addChild(text); } } }
ダンプするとこうなる。
[HEADER] File version: 9 [HEADER] File is zlib compressed. Ratio: 68% [HEADER] File size: 955 (Depacked) [HEADER] Frame rate: 24.000000 [HEADER] Frame count: 1 [HEADER] Movie width: 500.00 [HEADER] Movie height: 375.00 [045] 4 FILEATTRIBUTES [04d] 457 METADATA [041] 4 SCRIPTLIMITS [009] 3 SETBACKGROUNDCOLOR (86/9c/a7) [029] 26 SERIALNUMBER [02b] 6 FRAMELABEL "Hello" ==== Error: Unknown tag:0x052 ==== [052] 396 (null) ==== Error: Unknown tag:0x04c ==== [04c] 10 (null) [001] 0 SHOWFRAME 1 (00:00:00,000) (label "Hello") [000] 0 END
それぞれのタグの意味はこんな感じ。SerialNumberは仕様書に載ってないんだよなぁ。
タグ名 | 説明 |
---|---|
FileAttribute | メタデータを持つか、ネットワークを使うかを決める |
MetaData | SWFの情報。RDFで格納 |
ScriptLimits | ActionScriptの制限。再帰の深さとタイムアウトの時間 |
SetBackgroundColor | 背景色 |
SerialNumber | 不明。タグ番号は0x29。他のひとのswfと比較したけど同じだった |
FrameLabel | このフレームの名前 |
DoABC | ABC |
SymbolClass | 外部に公開するクラス名 |
ShowFrame | 表示の開始 |
End | ファイルの終端。EOF |