Flex: обновить текст метки, который является переменной - PullRequest
3 голосов
/ 08 декабря 2011

У меня есть метка, которая получает значение из переменной при нажатии на кнопку. Var уже объявлен:

public function clickevent
{
label.text = aVariable; 
}

Теперь я знаю, что если у меня есть такой ярлык:

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

и aVariable пуста, текст label2 имеет значение Null (в моем случае это не ошибка, просто "Null"). Это моя текущая ситуация.

Что я хотел бы знать, так это когда я позже изменю значение aVariable, например, на строку hasChanged. Текст label2 также должен измениться на «hasChanged» без необходимости нажимать кнопку или что-либо еще, чтобы внести это изменение. Как это можно сделать?

Ответы [ 3 ]

5 голосов
/ 08 декабря 2011

Я не уверен на 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>
3 голосов
/ 08 декабря 2011

Также следует отметить, что объявление любой переменной в блоке объявлений делает ее привязываемой по умолчанию:

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

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

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

Это просто альтернатива объявлению в блоке Script.

2 голосов
/ 08 декабря 2011

Объявите вашу переменную с тегом [Bindable], например:

[Bindable] private var aVariable:String;

Теперь, когда значение переменной aVariable изменяется, оно отражается на метке.

...