2010-04-19 164 views
2

我一直很難得到一個AS2的SWF的AS3 SWF中正確加載 - 但無濟於事......問題加載AS2 SWF到SWF AS3

的AS2文件(這是一個相當大的引用許多外部xml文件等應用程序)在Flash Player中啓動時可以很好地工作。

當試圖通過AS3 swf(使用URLRequest和Loader類)加載相同的文件時,文件開始加載,但在預加載階段突然停止。 (如果我嘗試使用AS2「loadMovie」加載它,也會發生這種情況。)

更新:看起來好像swf實際上是通過AS2 loadMovie加載的,而不是AS3加載程序類。

有什麼更多的嘗試?安全設置,自定義加載程序類 - 任何意見是讚賞。

回答

3

另外請記住,加載到AS3 swf中的AS2 swf在向其父SWF發送通信時會遇到問題,因此加載程序在跟蹤swf加載時會遇到問題 - 這可能會導致您遇到問題。你應該建立在AS2中加載的swf,然後使用LocalConnection將它連接到AS3 swf。

1

一般而言,您的加載電影必須設計爲從其他swf加載。例如,在發生Event.ADDED_TO_STAGE事件之後,任何初始化代碼都必須放置,並且對根的每個引用都不會像您期望的那樣工作。例如,一個元素的根就是swf單獨運行時的階段,但是當swf從另一個swf加載時,它就是父SWF,它的大小和位置可能不同,從而導致一些問題。

+0

AS2中沒有Event.ADDED_TO_STAGE,這是他加載的子SWF文件的內容。 – davr 2010-04-22 23:36:35

1

在你的AS2代碼中,一定要將lockroot(或者是_lockroot?)設置爲true。另外,如果您在任何地方使用AS2代碼中的_level0,它將不起作用,您需要將其更改爲_root。

+0

或者,您可以在電影加載後手動將_level0設置爲_root。在過去,我所做的是使用一個小型嵌入式AS2電影加載外部AS2內容。這額外的層似乎有所幫助。 – cleong 2012-08-30 00:14:10

1

檢查這一個。

  1. 使AS2容器加載您的AS2 APP,在frame2;
  2. 將容器加載到AS3動畫。
  3. 通過LocalConnection進行這些通信。

出口所有AS2 APP類幀2(在發佈設置)。