2011-11-23 112 views
0

如何在页面加载的Flex/Flash Builder中执行此操作?Flex从标签中获取文本值并将其放入var中

这是我的标签:

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

而且这是我试图让文本值转换成VAR:

public var halloText:String = hallo.text; 

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

回答

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

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

+0

谢谢!我发现这种情况下已经有了解决方法,但这对于未来的使用来说非常方便。 –

+0

很高兴知道!出于好奇,你的解决方法是什么? –

+0

我决定从其他地方首先获得var。但我想提出我以前的问题。我在这里发布的问题:http://stackoverflow.com/questions/8421862/flex-update-a-labels-text-wich-is-a-variable感谢您的帮助! –

相关问题