這聽起來像你試圖訪問.text屬性之前,它已被實例化。
假設你有一個MXML文件看起來像:
<?xml version="1.0" encoding="utf-8"?>
<test:LabelTester pageTitle="Label Test"
xmlns:test=".*"
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<s:Label id="hallo" text="hallo"/>
</test:LabelTester>
和應用類稱爲LabelTester,看起來是這樣的:
public class LabelTester extends Application {
public var hallo:Label;
function LabelTester() {
this.traceText();
}
private function traceText():void {
var halloText:String = this.hallo.text;
trace(halloText);
}
}
然後你會得到你所描述的運行時錯誤。
但隨後的構造函數改成這樣:
function LabelTester() {
// this.traceText();
this.addEventListener(FlexEvent.CREATION_COMPLETE, this.handleCreation);
}
,並添加:
private function handleCreation(creation:FlexEvent):void { this.traceText(); }
,如果你在調試器中運行它,你應該看到在控制檯窗口中正確的值。
謝謝!我發現這種情況下已經有了解決方法,但這對於未來的使用來說非常方便。 –
很高興知道!出於好奇,你的解決方法是什麼? –
我決定從其他地方首先獲得var。但我想提出我以前的問題。我在這裏發佈的問題:http://stackoverflow.com/questions/8421862/flex-update-a-labels-text-wich-is-a-variable感謝您的幫助! –