Изменить компоненты, которые не включены в текущее состояние? - PullRequest
1 голос
/ 22 апреля 2010

В Flex 4 можно ли изменять компоненты, которые не включены в текущее состояние? Например, у меня есть labelA, включенный в stateA, как мне изменить текст метки в stateB? Если я напрямую изменю текст метки в stateB, я получу сообщение об ошибке нулевой ссылки.

Один из обходных путей - включить labelA во все состояния и установить его невидимым в состояниях, отличных от stateA. Однако, если количество таких компонентов становится слишком большим, работа становится утомительной, а также я не думаю, что разумно включать ненужные компоненты пользовательского интерфейса в несвязанные состояния. Есть ли лучшее решение для этой ситуации? Спасибо!

Привет


Спасибо за ответ. Так что, если этот случай является распространенным, я ожидаю, что в моих кодах будет много объявлений привязываемых переменных, например

[Bindable]
private var a:String;
[Bindable]
private var b:String;
[Bindable]
private var c:String;

и так далее. Я прав? Еще раз спасибо! :)

1 Ответ

0 голосов
/ 22 апреля 2010

Не изменяйте текст на этикетке самостоятельно.Вместо этого вы можете создать переменную (строку), которая будет содержать текст, привязать текстовое значение меток к этой переменной, а затем только изменить значение переменной.Что-то похожее на это:

<fx:Script>
    <![CDATA[           
        [Bindable]
        private var yourLabelText:String = 'this is the text'; 
    ]]>
</fx:Script>
<s:Label text="{yourLabelText}" />
...