Actionscript 3 如果需要更改类定义,如何使用延迟加载swf文件中的对象?

Actionscript 3 如果需要更改类定义,如何使用延迟加载swf文件中的对象?,actionscript-3,actionscript,embed,lazy-loading,Actionscript 3,Actionscript,Embed,Lazy Loading,我正在使用延迟加载转换站点中的所有嵌入语句。以前是这样的代码: [Embed(source="/newswf.swf", symbol="kungfu")] public static var Kungfu:Class; 现在已转换为以下格式: private var _loader:Loader = new Loader(); public static var abcd:Class = null; _loader.contentLoaderInfo.addEventListener(Eve

我正在使用延迟加载转换站点中的所有嵌入语句。以前是这样的代码:

[Embed(source="/newswf.swf", symbol="kungfu")]
public static var Kungfu:Class;
现在已转换为以下格式:

private var _loader:Loader = new Loader();
public static var abcd:Class = null;
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoadComplete);
_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,onProgressHandler);
_loader.load(new URLRequest("newswf.swf"));



private function onLoadComplete(evt:*):void
{
    abcd = evt.target.applicationDomain.getDefinition("kungfu") as Class;
    dispatchEvent(new MyEvent(MyEvent.LOADING_DONE));
}
接收MyEvent.LOADING_DONE事件时,将调用使用abcd的函数

现在,我的问题是,当一个类使用symbol并有一个类定义时,我无法使用上述方法实现它,因为构造函数将立即被调用,并且不会侦听onLoadComplete事件侦听器

[Embed(source="/newswf.swf", symbol="judo")]
public class Judo extends MovieClip
{
    public function Judo()
    {
        super(...);
    }
}
当我将代码放在一个单独的函数中的构造函数中,并在onLoadComplete方法中调用它时,我得到一个错误,因为super方法最初是在构造函数中使用的,不能在构造函数之外使用

有人能告诉我一种在这种情况下进行延迟加载的方法吗


提前感谢:

我不确定加载后是否可以扩展类定义,因为我从未尝试过,但您是否尝试过简单地强制转换加载的对象,然后不再调用super?也就是说,在加载器函数类型中:

obj:Judo = Judo(LoaderInfo(e.target).content)
这篇文章可能会有帮助:

也就是说,我可能不会以这种方式构造代码,而只是避免使用其他结构描述的情况。比如,一种方法不是将加载的对象变成柔道对象,而是初始化一个单独的柔道对象,然后将加载的对象传递给它。旧的有一对是一的区别

另一种实现相同功能的方法是,包含类不进行加载,只创建一个新的Judo对象,将文件名传递给构造函数。然后柔道物体进行加载