Забавное поведение от Adobe Flex Transitions-возможная ошибка - PullRequest
1 голос
/ 01 октября 2011

Мне кажется, я только что заметил явную ошибку в flex 4.5 .

Ссылка на соответствующее приложение здесь . ПОСМОТРЕТЬ ИСТОЧНИК ВКЛЮЧЕНО !!

Вот такие переходы:

<s:states>
    <s:State name="State1"/>
    <s:State name="State2"/>
    <s:State name="State3"/>
</s:states>

<s:transitions>

    <s:Transition fromState="State1" toState="State2" autoReverse="true" >
        <s:Sequence>
            <s:Move duration="500" target="{goButton}"/>
            <s:AddAction targets="{[tagsLabel,tagsTextInput]}"/>
            <s:Fade targets="{[tagsLabel,tagsTextInput]}" duration="500" />
        </s:Sequence>
    </s:Transition>

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


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

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

</s:transitions>

Видите ли, я здесь немного работаю с Переходами; один переход активируется на DropDownList indexChangeEvent, а другой срабатывает clickEvent на лупе Button.

Проблема, с которой я сталкиваюсь, такова:

Если я нажму на «лупу» Button три раза , (не 3 раза подряд, а 1 щелчок, дождитесь перехода, еще один щелчок, дождитесь перехода, последний щелчок) затем я получаю забавное поведение : лупа Button исчезает, хотя я никогда не заставлял ее исчезать при переходах; а «1032», который должен был исчезнуть, не исчез; он как-то застрял в в State3, что является состоянием с Datagrid в нем.

Поверьте мне, я потратил как минимум 4 часа на это написание и переписывание этих переходов, я пробовал все виды вещей в Интернете, но безрезультатно.

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

Большое спасибо.

1 Ответ

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

Я играл с ним некоторое время. Заметил, что по какой-то причине при изменении состояний одно из переопределений AddItems удаляет элемент с индексом 0 из контейнера Border (вы можете отладить и убедиться в этом сами, добавив обработчик для события removeFromStage в goButton). Я все еще исследую проблему, но у меня есть быстрое решение для вас. Просто включите goButton во все три состояния: includeIn = "State1, State2, State3", и он не исчезнет:] Если я найду причину, я отправлю это вам.

Надеюсь, это поможет,

Blaze

...