Flex从标签获取文本值并将其放入var中

时间:2011-11-23 23:03:50

标签: text get flash-builder label

如何在页面加载的Flex / Flash Builder中执行此操作?

这是我的标签:

<s:Label id="hallo" text="hallo"/>

这就是我试图将文本值变为var:

的方法
public var halloText:String = hallo.text;

但是当我运行这个时,我得到一个动作错误#1009:无法访问null的属性或方法......

1 个答案:

答案 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(); }

如果在调试器中运行它,您应该在控制台窗口中看到正确的值。