0

我希望在运行时加载一个用 swfmill 编译的外部 swf。换句话说,异步加载它(不与文件一起编译)。此 swf 包含 2 个资产:file1.png 和 file2.png。

它主要工作,除了这个问题:如何附加文件中的资源?通常我会使用 attach()...

var _urlLoader = new URLLoader();
var _urlRequest = new URLRequest("libgfx.swf");
_urlLoader.load(_urlRequest);
_urlLoader.addEventListener(Event.COMPLETE, onComplete);

public function onComplete(e:Event) {
    trace("Received shared libgfx.swf. Length: " + _urlLoader.data.length);  // displaying the size correctly

    var displayObjectLoader:Loader = new Loader();
    displayObjectLoader.load(_urlRequest);
    var displayObject:DisplayObject = addChild(displayObjectLoader);

    // How would you attach file1.png or file2.png?
    // …?
}

任何帮助表示赞赏:)

4

1 回答 1

0
  • 将资产转换为 MovieClip。
  • 为他们添加链接。
  • 使用以下代码加载它:

    var context:LoaderContext       = new LoaderContext( );
        context.applicationDomain   = ApplicationDomain.currentDomain;
    
    var loader : Loader = new Loader( );
        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete );
        loader.load( new URLRequest( "assets.swf" ), context );
    
        function complete ( e:Event ) : void
        {
            var Asset : Class = e.target.applicationDomain.getDefinition("the linkage of the asset") as Class;
            var asset : MovieClip = new Asset( );
            addChild( asset );
        }
    

希望这可以帮助。

干杯

塔马斯格罗纳斯

于 2011-06-27T16:16:55.207 回答