2011-12-10 58 views
1

訪問TLFTextField時,我迷失在這一張上。我接收TypeError: Error #1009: Cannot access a property or method of a null object reference.輸出消息第一次我的文檔類試圖訪問在舞臺上的一個簡單的文本字段(來自IDE添加,不動作)Flash TypeError:錯誤#1009:無法訪問空對象引用的屬性或方法。 - 當從文檔類

package { 

import flash.display.*; 
import fl.text.*; 
import flash.text.*; 
import flash.events.*; 
import flash.net.*; 

public class Main extends MovieClip { 

    private var _netConnection:NetConnection; 
    private var _responder:Responder; 
    /* some other public + private vars */ 

    public function Main() { 
     init(); 
    } 

    public function init(e:*=null):void { 
     _netConnection = new NetConnection(); 
     _responder = new Responder(uponResult); 

     txt.text = "init()"; 
    } 
    /* more functions */ 
    } 
} 

我嘗試添加txt.addEventListener(Event.ENTER_FRAME, init);櫃面TXT TLFTextField不是..那裏......在開始時,它仍然輸出錯誤。

我覺得自己有點白癡atm,預後文檔是什麼? JB

+0

這取決於你如何以及在何處初始化你'txt'。你可以發佈代碼嗎? –

+0

txt通過Flash IDE手動添加到舞臺上,而不是通過actionscript。 –

+0

如果txt不存在,你不能添加一個事件監聽器,或者...你有沒有嘗試在文檔類'Event.ADDED_TO_STAGE上調用init? – weltraumpirat

回答

2

TLFTextFields是奇怪的生物,最近我遇到了很多問題。

我會嘗試使用Event.ADDED_TO_STAGE事件,因爲TLFTextFields必須在舞臺上,當您嘗試訪問它們:

public function Main() { 
    addEventListener(Event.ADDED_TO_STAGE, init); 
}; 
public function init(e:Event):void { 
    removeEventListener(Event.ADDED_TO_STAGE, init); 
    txt.text = "init()"; 
}; 

它應該工作,如果你的TLFTextField爲第一個幀上主要時間表。

讓我知道如果這個人做的魔力,

羅布

+0

這樣做的伎倆,羅布,謝謝親切! 難倒我的另一件事是,TLFTextFields似乎只有在它們可選或可編輯時才能正常工作,而不是在只讀時才能正常工作。這是一個動作錯誤,還是你需要做額外的事情,使其正常工作? –

+0

不幸的是,TLFTextField仍然是一個測試版功能,並且充滿了bug。我會說盡可能多地閱讀它,如果你的代碼被困住了,回到這裏:) – robertp

相關問題