Flex 4 Изменение параметров стиля с состояниями - PullRequest
0 голосов
/ 05 апреля 2011

Мне интересно найти лучший подход к этой проблеме, это не технически сложно, но должно быть элегантное решение.

В принципе, у меня есть форма, которая в основном содержит текстовые вводы, я хотел быизменить стиль полей ввода на основе текущего состояния.

Я могу сделать это в mxml на каждом входе ...

<s:TextInput text="label" borderColor.State1="0xFFFFFF" borderColor.State2="0x000000"/>

Но это включает создание свойств для каждого элементав форме.

Должен быть лучший способ сделать это без добавления свойства для каждого элемента?

Спасибо!

1 Ответ

1 голос
/ 05 апреля 2011

Вы можете использовать переходы и SetAction для одновременной установки стилей для нескольких объектов на основе нового состояния просмотра. Это пример из документации по SDK: .

<s:states>
        <s:State name="Login" />
        <s:State name="Register" />
    </s:states>

    <s:transitions>
        <!-- Define the transition from the base state to the Register state.-->
        <s:Transition id="toRegister" fromState="*" toState="Register">
            <s:Sequence targets="{[loginPanel, registerLink, confirm, loginLink]}">
                <s:RemoveAction />
                <s:Fade />
                <s:SetAction target="{loginPanel}" property="title" />
                <s:SetAction target="{loginButton}" property="label" />
                <s:SetAction target="{loginButton}" property="color" />
                <s:Resize target="{loginPanel}"/>
                <s:AddAction />
                <s:Fade />
            </s:Sequence>
        </s:Transition>

        <!-- Define the transition from the Register state to the base state.-->
        <s:Transition id="toDefault" fromState="Register" toState="*">
            <s:Sequence targets="{[loginPanel, registerLink, 
                    confirm, loginLink]}">
                <s:RemoveAction/>
                <s:SetAction target="{loginPanel}" property="title"/>
                <s:SetAction  target="{loginButton}" property="label"/>
                <s:SetAction target="{loginButton}" property="color"/>
                <s:Resize target="{loginPanel}"/>
                <s:AddAction/>
            </s:Sequence>
        </s:Transition>
    </s:transitions>

Вы можете просто нацелить все в последовательности (вместо этого использовать разные цели для каждого SetAction) и использовать свойство 'value' SetAction, чтобы установить значения на то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...