AS3和Swfmill:如何访问swfmill生成的库swf中的资产

问题描述 投票:0回答:1

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

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

我想用swfmill创建相同类型的库。我试过以下swfmill 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是否会以这种方式出口课程?如果没有,有没有办法访问符号而不将它们实例化为类?

乔纳斯

actionscript-3 flash assets swfmill
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。

© www.soinside.com 2019 - 2024. All rights reserved.