我用as3这样创建库swfs,就像一个魅力(慢速mxmlc编译器除外):
package {
import flash.display.Sprite;
public class Library extends Sprite {
[Embed(source="assets/test.png")]
public var TestBitmap:Class;
}
}
我想使用swfmill创建相同类型的库。我尝试了以下swmfill simple xml:
<movie version="10">
检查FlashDeveloper的资源管理器中的库显示as3库导出BOTH类和符号,但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是否会以这种方式出口课程?如果没有,有没有办法访问符号而不将它们实例化为类?
纳斯
答案 0 :(得分: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。