2013-05-08 74 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