FlashDevelop加載SWF問題彙總

問題1:

ArgumentError: Error #2180: 如果 AVM1 內容(AS1 或 AS2)已加載到 AVM2 (AS3) 內容中,則不可將其移動到 displayList 的其他部分。  

2010-08-05 15:21:43|  分類:隨記 |  標籤:|字號 訂閱

     今天做一個東西時,無意中發現了這個問題。

    問題描述:我們都知道flash player有兩個虛擬機AVM1和AVM2。前者是flash player9以下的版本運行時所需要的,它用來解析as1和as2。後者是專門爲as3開發的,用來解析as3。

   我用flash player10加載了一個player8及以下的swf(2.0的),並且把content添加到顯示列表中。結果就出現這樣的問題。

ArgumentError: Error #2180: 如果 AVM1 內容(AS1 或 AS2)已加載到 AVM2 (AS3) 內容中,則不可將其移動到 displayList 的其他部分。
 at flash.display::DisplayObjectContainer/addChild()
 at flash.display::Stage/addChild()
 at _fla::MainTimeline/com()

經測試,只有flash player10以上得版本會出這樣的問題,換成9就沒問題了。不知道player10是什麼搞的,用的不是AVM2嗎?也就是隻要你用player 10加載player9以前版本發佈的swf就會出錯。

 

    問題分析:我們來看看錯誤描述,“如果 AVM1 內容(AS1 或 AS2)已加載到 AVM2 (AS3) 內容中,則不可將其移動到 displayList 的其他部分”。說明as1或as2已經加載進來了,只是有把它移動到其他的現實列表導致這樣的問題。

 

    問題解決:直接把加載swf的loader加載到顯示列表,這樣就不會出問題。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章