如何在页面加载的Flex / Flash Builder中执行此操作?
这是我的标签:
<s:Label id="hallo" text="hallo"/>
这就是我试图将文本值变为var:
的方法public var halloText:String = hallo.text;
但是当我运行这个时,我得到一个动作错误#1009:无法访问null的属性或方法......
答案 0 :(得分:1)
听起来你试图在实例化之前访问.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(); }
如果在调试器中运行它,您应该在控制台窗口中看到正确的值。