我以这种方式在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是否期望以这种方式导出类?如果不是,有没有一种方法可以访问符号而不将它们实例化为类?
乔纳斯
发布于 2009-12-10 10:49:36
简而言之,不是。我也一直在调查这个问题。由于我使用的是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。
https://stackoverflow.com/questions/1685959
复制相似问题