【问题标题】:Attaching swf elements by ObjectID通过 ObjectID 附加 swf 元素
【发布时间】:2010-11-30 09:43:29
【问题描述】:

我有一些图形需要在我的 haxe(将来也编译为 swf)程序中使用的 swf 文件。用swfmill嵌入图片是没有问题的,所以我尝试用swfmill反汇编swf,发现一些像DefineSprite和DefineShape这样的条目有objectID。

是否可以使用 swf 文件作为库从 haxe 附加这些元素?

【问题讨论】:

    标签: flash haxe assets swfmill


    【解决方案1】:

    您可以附加一个元素(图片、声音等),如果它们有:

    1. 为其导出的SymbolClass(或者可能是ExportAsset)
    2. 已生成 AS3 类存根(至少对于 flash9+) - Haxe 会处理这个问题,至少对于第一帧上的资源

    对于haxe,你必须支持 -swf-lib mylib.swf switch,它只接受一个 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"), []);
    

    希望这会有所帮助。

    【讨论】:

    • 有点帮助。没有回答我的问题,但至少我知道我不是唯一一个做不到的人(ObjectID 链接)。
    • 我想告诉你,如果给定 ID 没有任何 SymbolClass,那么你就不能实例化它。但是,如果需要,您可以做一些修改:使用 format.swf haxelib 解析 SWF,将 SymbolClass 标记添加到解析的结构中,以及一个 AS3 类存根(使用 format.abc 组装)。您可以查看 SamHaxe 的资源以了解它是如何做到的。
    • 当然这可以在运行时即时完成,您可以加载和使用新组装的 swf 文件。
    猜你喜欢
    • 2012-10-01
    • 2012-10-01
    • 2015-05-28
    • 1970-01-01
    • 2015-07-27
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多