Забавное поведение от Adobe Flex Transitions (2) - PullRequest
0 голосов
/ 24 октября 2011

Независимо от того, что я делаю, мои переходы не будут работать так, как ожидалось. Я объясню проблемы, а затем разместлю код внизу.

В моем приложении 4 состояния.

goButton присутствует только в "State1" и "State2".

State1 и State2 почти одинаковы, но свойство y goButton различно в каждом. Итак, я сделал небольшой переход, который перемещает Баттон вперед и назад. Пока все хорошо.

Тем не менее, и "State1" и "State2" также могут быть переведены в "State3". Но в "State3" нет goButton, поэтому я использовал эффекты <s:Fade> и <s:RemoveAction>, чтобы избавиться от него.

Переход от "State1" к "State3" работает ок , но Переход от "State2" к "State3" не .

Когда я пытаюсь вызвать переход с "State2" на "State3", goButton быстро мигает / возвращается в положение, в котором он находился в "State1", и фактически происходит только переход на "State3".

это мой goButton

<s:Button id="goButton" includeIn="State1,State2" x="319" y="212" width="33" height="33" click="goButton_clickHandler()" icon="@Embed('file:///C:/Users/Felipe/Downloads/1317358341_magnifier_medium.png')" toolTip="go" x.State2="319" y.State2="275"/>

и это соответствующие переходы:

<s:Transition fromState="State1" toState="State3" >
            <s:Sequence>
                <s:Fade duration="700" targets="{[searchLabel,searchTextInput,inLabel,inDropDownList,goButton,addNewLessonButton]}" />
                <s:RemoveAction targets="{[searchLabel,searchTextInput,inLabel,inDropDownList,goButton,addNewLessonButton]}" />
                <s:AddAction targets="{[lessonsDataGrid,backButton]}" />
                <s:Fade duration="700" targets="{[lessonsDataGrid,backButton]}" />
            </s:Sequence>
        </s:Transition>

        <s:Transition fromState="State2" toState="State3" >
            <s:Sequence>
                <s:Fade duration="700" targets="{[searchLabel,searchTextInput,inLabel,inDropDownList,tagsLabel,tagsTextInput,goButton,addNewLessonButton]}" />
                <s:RemoveAction targets="{[searchLabel,searchTextInput,inLabel,inDropDownList,tagsLabel,tagsTextInput,goButton,addNewLessonButton]}" />
                <s:AddAction targets="{[lessonsDataGrid,backButton]}" />
                <s:Fade duration="700" targets="{[lessonsDataGrid,backButton]}" />
            </s:Sequence>
        </s:Transition>

Я предполагаю, что Flex всегда (не спрашивайте меня, почему) перемещает компонент обратно в исходное положение перед выполнением перехода. Я пробовал другую версию этого приложения , в которой я установил свойства x и y моих goButton на то, что они есть в "State2", а затем установил x.State1 = something else и y.State1 = something else и угадайте, что происходит? Я получаю точную обратную задачу! Переход с "State2" на "State3" в порядке, но переход с "State1" на "State3" не работает, так как goButton мигает обратно в исходное положение (теперь это положение в "State2") и только тогда происходит Переход.

Чувак, это сводит меня с ума. _ __ _ __ _ __ _ __ _ __ _ __ // _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ __ _ __ _ __ _ __ _ __ _ __ _ // _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _

EDIT

Я добавил ссылку на приложение >>>> ЗДЕСЬ <<<<<< </strong> Вы можете увидеть проблему, выбрав опцию «выбранные теги», а затем нажав кнопку «Перейти». Вы увидите, о чем я говорю. Посмотреть источник доступен !!!

Ответы [ 3 ]

2 голосов
/ 28 октября 2011

Похоже, он ищет x, y для кнопки goButton в State3.Если вы не установите один явно, он возвращается к значению по умолчанию.Добавление

x.State3="{this.x}" y.State3="{this.x}"

к <s:Button id="goButton" ... /> исправило это для меня.

2 голосов
/ 24 октября 2011

Я думаю, ты делаешь это слишком сложным. Просто установите includeIn = "state1, state3" для кнопки. Нет необходимости добавлять действия. Затем создайте один переход Fade, который устанавливает goButton в качестве цели. Исчезновение Spark достаточно умен, чтобы понять, как справиться с этой ситуацией без дополнительной помощи от вас.

Проверьте http://polygeek.com/2304_flex_simple-flex-4-component-checkedunchecked для более подробной информации.

0 голосов
/ 25 октября 2011

>>> LL <<<< </strong>

ОК. Я думаю, что я выделил это поведение и верю, что это BUG или GLITCH.

Я посмотрю, есть ли у кого-нибудь что добавить, и если никто не появится, я отправлю сообщение об ошибке.

Действия для воспроизведения:

  • создать кнопку, которая присутствует в двух разных состояниях, в разных координатах x, y.Например, ваша кнопка будет иметь значение для x и для y, и вам придется установить ее положение в другом состоянии, например, x.State2 = something и y.State2=something

  • сейчассоздайте переход от State2 (если State1 - ваше исходное состояние) к третьему состоянию с именем State3.

  • переход должен иметь последовательность шагов <s:Sequence>, предпочтительно с использованием RemoveActions и Fades, как теЯ использовал выше.
...