Flex:更新标签的文本,这是一个变量

时间:2011-12-07 20:11:31

标签: actionscript-3 flex flash-builder

我有一个标签,当你点击一个按钮时,它会从var获得它的值。已经声明了var:

public function clickevent
{
label.text = aVariable; 
}

现在我知道如果我有这样的标签:

<s:Label id="label2" text="{aVariable}"/> 

和aVariable是空的,label2的文本是Null(它没有给出错误,在我的情况下只是“Null”)。这是我目前的情况。

我想知道的是,我稍后将aVariable的值更改为字符串“hasChanged”,例如。 label2的文本也应更改为“hasChanged”,而无需用户按下按钮或任何内容进行此更改。怎么办呢?

3 个答案:

答案 0 :(得分:5)

我不是100%确定我理解你的问题,但是如果你的变量被声明为“可绑定”,无论你的脚本是改变它的值还是按钮,标签的文本属性都会在绑定时跟随。

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx">

    <fx:Script>
        <![CDATA[
            [Bindable]
            private var aVariable:String;

            protected function button1_clickHandler(event:MouseEvent):void
            {
                aVariable = "My new value";
            }
        ]]>
    </fx:Script>

    <s:layout>
        <s:VerticalLayout/>
    </s:layout>

    <s:Label text="{aVariable}"/>

    <s:Button label="Click me" click="button1_clickHandler(event)"/>

</s:WindowedApplication>

答案 1 :(得分:3)

值得注意的是,声明块中的任何变量声明默认为Bindable:

<fx:Declarations>
  <fx:String id="aVariable" />
</fx:Declarations>

<s:Label text="{aVariable}" />

<s:Button label="Click Me" click="aVariable='Clicked!'" />

这只是脚本块中声明的替代方法。

答案 2 :(得分:2)

使用[Bindable]标签声明您的变量,例如:

[Bindable] private var aVariable:String;

现在,只要变量aVariable的值发生变化,它就会反映在标签上。