AS3:如何实例化通用'文档类' (MainTimeline?)加载的SWF?

时间:2013-05-08 22:40:51

标签: actionscript-3 applicationdomain document-class

我有“Question.swf”,它是从“Question.fla”创建的。请注意,Question.fla没有与之关联的文档类。 (请注意,这是遗留内容,并且有超过14,000种“Question.swf”变体;更改所有这些变体不是一个可行的选项。)

现在我有了我的主要Flash应用程序,它在运行时加载到Question.swf中。我知道Question.swf有一个自动创建的“文档类”,它代表了SWF的整个“阶段”(并且它被命名为“MainTimeline”)。我希望这个应用程序能够实例化Question.swf Document类的多个实例......我该怎么办?

自2006年以来我一直在使用Flash / AS3(我对加载/使用外部内容,ApplicationDomain等非常熟悉),但我发现我不知道如何做到这一点!

我尝试过的没有用的东西包括使用hasDefinition(“Question_fla.MainTimeline”)查询相关的ApplicationDomain - 这会返回false - 以及在我的loader.content对象上运行getQualifiedClassName() - 这只会返回MovieClip

1 个答案:

答案 0 :(得分:1)

我不确定如何复制Loader的主要内容。但是,合理的解决方法可能是加载SWF字节一次并从这些字节创建多个Loader:

  1. 使用URLLoader加载SWF字节:

    var urlloader : URLLoader = new URLLoader();
    urlloader.load(new URLRequest("your url here"));
    
  2. 加载后,使用字节实例化新的显示对象:

    var loader : Loader = new Loader();
    loader.loadBytes(urlloader.bytes);
    
  3. 在显示列表(或加载器本身)上使用加载的加载程序的loader.content显示对象。