2010-05-20 45 views
1

我寫在這裏,因爲尋找一個解決方案後,我解決不了我的錯誤...AS3和Loader類

var test:MovieClip; 

var sign:Loader = new Loader(); 
sign.contentLoaderInfo.addEventListener(Event.COMPLETE, completSIGN); 
sign.load(new URLRequest("http://files.zebest-3000.com/278374/3011/3011.swf")); 

function completSIGN(e:Event):void 
{ 
test = MovieClip(e.target.content); 
addChild(test); 
} 

這是錯誤:

TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul. at Main::StateManager()

因此,電影(一些視頻完美工作,其他視頻不需要)不想加載到我的容器中;似乎映射中存在問題......並且不能修改遙遠的電影。

  • 是否有另一種方法加載一個電影裏面(我也嘗試加載與bytearray,但它是一樣的)?
  • 我們能否抓住這個錯誤並重新定位實例以幫助他找到正確的方法?
+1

StateManager中該行的null是什麼?我沒有看到StateManager如何與此代碼相關聯。 – quoo 2010-05-20 19:34:40

+0

如果錯誤是在'StateManager'中,那麼發佈該代碼 – Amarghosh 2010-05-21 04:31:15

+0

StateManager是遠處電影的一部分,我沒有代碼,但沒有封裝,電影的作品! – Acti67 2010-05-21 06:13:12

回答

0

基於您的評論我認爲StateManager()從文檔類的遠程SWF的構造函數調用,它會嘗試使用類似this.stagethis.root.stage訪問stage。現在,作爲獨立的SWF運行時,它將毫無問題地工作,因爲stage屬性已由調用時間文檔類的構造函數設置。遠程加載時stage只有在您將其添加到完整處理程序後才能設置。

我不知道這一點,但嘗試調用addChild(sign);你打電話之前sign.load - 你可以從completeSign方法刪除這兩條線。

+0

不幸的是,這與這個解決方案是一樣的...... – Acti67 2010-05-21 12:16:57

+0

在這種情況下,加載內容是在添加到顯示列表之前創建的,這也是非常有意義的,您將不得不聯繫'StateManager '解決它。 – Amarghosh 2010-05-21 12:33:38