0

我以这种方式在 as3 中创建库 swfs,就像一个魅力(除了缓慢的 mxmlc 编译器):

package {
 import flash.display.Sprite; 
 public class Library extends Sprite {
   [Embed(source="assets/test.png")]
      public var TestBitmap:Class; 
 }
}

我想使用 swfmill 创建相同类型的库。我尝试了以下 swmfill 简单 xml:

<movie version="10">

检查 FlashDeveloper 资源管理器中的库会发现 as3 库同时导出类和符号,但 swfmill 库仅导出符号。我的主机应用程序以这种方式访问​​ as3 库资产:

private var loader:Loader = new Loader();

private function onCreationComplete():void {
    this.loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
}

private function onComplete(e:Event):void {
    var resourceClass:Class = loader.contentLoaderInfo.applicationDomain.getDefinition("Library") as Class;
    var resources:Object=new resourceClass();
    var testBitmapClass:Class = resources['TestBitmap'] as Class;   
    var testBitmap:Bitmap = new testPngClass();
    this.addChild(testBitmap);
}

但是没有导出的 swfmill 类,显然没有什么可以实例化的......

swfmill 预计会以这种方式导出课程吗?如果没有,有没有办法在不将它们实例化为类的情况下访问符号?

乔纳斯

4

1 回答 1

1

简而言之,没有。我也一直在研究这个。由于我使用 Flash IDE、Haxe 和 flex,我将概述通过将内容嵌入到 swf 中来访问内容的不同方法。

看起来没有办法直接实例化符号。如果您的资源是由 Flash IDE 导出的,通常您会设置要导出的属性,以便 Actionscript 获取符号。在 Haxe 中,您将指定一个类以匹配 swfmill xml 中的类。使用 flex,您可以定义一个类并使用 Embed 元数据标签通过嵌入 swf 来访问符号。http://livedocs.adobe.com/flex/3/html/help.html?content=embed_4.html

该脚本可能有助于您生成导出类。http://wiki.disemia.com/HaXe_SWFMILL_Resource_Converter

如果您使用的是 AS3,那么如果您从命令行编译项目,则可能无论如何都必须使用 mxmlc。由于速度是您的问题,您应该考虑使用 fcsh。

于 2009-12-10T02:49:36.390 回答