2012-03-28 96 views
0

這非常令人沮喪。我只是試圖創建一個動態文本,並在運行時放入一些文本。錯誤#1009:無法訪問空對象引用的屬性或方法

我得到這個錯誤,雖然

TypeError: Error #1009: Cannot access a property or method of a null object reference. 
    at MethodInfo-1() 
    at flash.events::EventDispatcher/dispatchEventFunction() 
    at flash.events::EventDispatcher/dispatchEvent() 
    at flash.net::URLLoader/onComplete() 

我有一個名爲爲textLabel文本對象,這是一個名爲MC_state影片剪輯中。 我得到它,因爲我用:

MC_state.textLabel.text = "asdasd"; 

而且我希望我知道問題是什麼。我有其他的對象設置方式不會給我這個問題。我只是不知道如何調試。

謝謝!

+0

從你給出的,我會猜測:你正試圖訪問textLabel之前已經初始化。你在哪裏試圖分配到文本屬性? – 2012-03-28 16:05:08

+0

MC_State所在的關鍵幀位於代碼所在的時間軸上。 (第10幀的代碼,35的第一個關鍵幀)。我複製了框架,以便垂直所有對象都有一個正好在代碼下面的框架,我認爲它解決了這個問題。那是這種方式嗎? – Ted 2012-03-28 16:21:27

回答

2

錯誤是告訴你,有沒有對象一起MC_state.textLabel.text的地方,所以無論是閃存無法找到MC_state,或者textLabelMC_state或內部MC_state.textLabel(不太可能)text

如果我可以大膽雖然猜測,我想你看到這一點,因爲這個事情發生了:

你有地方叫MC_state一個影片剪輯具有多個幀。您將綁定到gotoAndStop或gotoAndPlay到一個框架,該框架的文本框名爲textLabel,這就是您要更改的文本。

這個問題,它經常出現在從AS2過渡的人身上,就是當你執行gotoAndPlay/gotoAndStop函數時,movieClip不會立即更新,這發生在渲染階段。該函數後面的代碼立即執行,所以動畫片段仍然在舊框架中。

有兩種方法可以處理它

  • 成立了事件處理程序,更新渲染事件,並更改文本,然後。您可以通過運行stage.invalidateexample

  • 快點舞臺渲染其他(更好)的選擇是在所有幀中的文本,並將其隱藏的或不可見的,這樣你可以在任何時候訪問它。

+0

我複製了框架,以便在該框架上有一個對象。現在我看不到文字,這是另一個問題。這是令人沮喪的 – Ted 2012-03-28 16:32:35

+0

你可以在所有框架中看到文本,並通過代碼設置文本可見性,不應該成爲問題,因爲無論如何您都要在代碼間切換。您也可以更改不同關鍵幀中文本字段的屬性,只需確保每個幀中都存在文本字段。 – Daniel 2012-03-28 16:45:39

+0

我注意到抗鋸齒可能會造成困難,切換到使用設備字體,但看起來很可怕 – Ted 2012-03-28 17:19:24

相關問題