2009-09-22 62 views
0

我有一些swf文件,我需要在我的haxe中使用(未來編譯爲swf)程序。 swfmill嵌入圖片沒有問題,所以我試圖用swfmill反彙編swf,發現了一些類似DefineSprite和DefineShape的對象ID。通過ObjectID附加swf元素

是否有可能將haxe中的這些元素作爲庫使用swf文件?

回答

1

,如果他們有,您可以將一個元素(圖片,聲音等):

  1. SymbolClass出口爲它(或者ExportAsset)產生
  2. AS3類存根(用於FLASH9 +至少) - HAXE將照顧這至少對資源的第一幀

對於haXe的,你必須支持 -swf-lib mylib.swf 開關,只需要一個SWF文件作爲參數。如果你想使用多個庫,你可以用swfmill或SamHaxe將它們組裝成一個庫,並支持組裝的庫。

從HAXE,你就可以使用

var mySprite: flash.display.Sprite = cast 
Type.createInstance(Type.resolveClass("the.exported.SpriteSymbolName"), []); 

var myBitmap: flash.display.Bitmap = cast 
Type.createInstance(Type.resolveClass("the.exported.BitmapSymbolName"), []); 

希望這有助於。

+0

有點幫助。沒有回答我的問題,但至少我知道我不是唯一不能這樣做的人(通過ObjectID鏈接)。 – stroncium 2009-10-12 21:47:51

+0

我想告訴你,如果給定的ID沒有任何SymbolClass,那麼你就不能實例化它。然而,如果你需要它,你可能會做一些破解: 使用format.swf haxelib解析SWF,向解析的結構添加SymbolClass標記,以及AS3類存根(使用format.abc組裝)。你可以偷看SamHaxe的來源,看看它是如何做到這一點的。 – ron 2009-10-19 12:46:56

+0

當然,這可以在運行時即時完成,您可以加載和使用新組裝的swf文件。 – ron 2009-10-19 12:48:17