这听起来像你试图访问.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感谢您的帮助! –