2013-05-08 47 views
0

我有“Question.swf”,它是从“Question.fla”创建的。请注意,Question.fla没有与它关联的文档类。 (请注意,这是传统内容,并且有超过14,000个“Question.swf”变体;更改所有这些并不是一个可行的选项。)AS3:如何实例化加载的SWF的通用“文档类”(MainTimeline?)?

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

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

我尝试过哪些工作没有包括使用hasDefinition查询相关ApplicationDomain(“Question_fla.MainTimeline”) - 这将返回false - 以及在我的loader.content对象上运行getQualifiedClassName() - 这只是返回影片剪辑。

+0

不确定要好好理解,但据我所知,加载的SWF的文档类会自动实例化。 – RafH 2013-05-08 22:49:02

+0

这是正确的,但我想实例化该类的第二个实例。 )我假定我的loader.content对象是这个类的一个实例,但如果是,getQualifiedClassName()或describeType()就会确认(它们都报告它是一个MovieClip)。 – IQpierce 2013-05-08 22:51:57

回答

1

我不知道如何复制Loader的主要内容。一旦它被加载,使用

var urlloader : URLLoader = new URLLoader(); 
urlloader.load(new URLRequest("your url here")); 
  • :但是,一个合理的解决办法可能是从这些字节一次加载SWF字节,并创建多个装载机:

    1. 对于URLLoader加载您的SWF字节字节来实例化新的显示对象:

      var loader : Loader = new Loader(); 
      loader.loadBytes(urlloader.bytes); 
      
    2. 使用您加载装载机的loader.content显示对象的显示列表(或加载器本身)上。

  • +0

    这似乎是做我想做的最接近的方式 - 奇怪的是,没有其他方式来实例化这个类。谢谢约翰! – IQpierce 2013-06-06 18:11:50