Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 27.10.2011, 17:48
Dimitry_II вне форума Посмотреть профиль Отправить личное сообщение для Dimitry_II Найти все сообщения от Dimitry_II
  № 1  
Ответить с цитированием
Dimitry_II

Регистрация: Jan 2010
Сообщений: 211
По умолчанию States и transitions - пару вопросов

Есть приложение:
Код:
<s:Application ...>
    <fx:Script>
        <![CDATA[
        ...
        currentState = "state1";
        ....
        ]]>
    </fx:Script>
    <someContainer>
        <project.views:View1 id="view1" includeIn="state1"/>
        <project.views:View2 id="view2" includeIn="state2"/>
    </someContainer>
    <s:states>
        <s:State name="state1"/>
        <s:State name="state2"/>
    </s:states>
</s:Application>
Если в View1 я хочу перейти в View2, то приходится делать следующее (часть View1):
Код:
    ...
    <s:Button label="toView2" click="FlexGlobals.topLevelApplication.currentState = 'state2'"/>
    ...
Что-то терзают меня смутные сомнения, что я что-то делаю не так. Так как все работает как хотелось бы, то это всего лишь подозрения. Я так понимаю, что правильнее было диспатчить события выше по структуре для изменения состояния. Но как быть, если мне надо сделать разделение сотояния не на самом верхнем уровне, а в одном из "окон" (представлении)? - Ведь состояния - привилегия приложения (верхнего уровня).

И второй вопрос - относительно переходов между состояниями. Доки в инете по transitions навалом, но ответ на свой вопрос я нашел только в искаженном виде.
Допустим, я хочу, чтобы приложение из состояния state1 в состояние state2 переходило путем "исчезания" элементов первого и "появления" второго. Если сделать банально
Код:
<s:Transition fromState="state1" toState="state2">
    <s:Fade target="{view1}" alphaFrom="1" alphaTo="0" duration="600"/>
    <s:Fade target="{view2}" alphaFrom="0" alphaTo="1" duration="600"/>
</s:Transition>
(неважно, что мы будет использовать - Sequence, Parallel или другое), мы не увидим действий над элементами из состояния "fromState" - только из "toState".
Решение извращенное:
Код:
<s:State name="state1Tostate2"/>
...
<s:Transition fromState="state1" toState="state1Tostate2">
    <s:Fade target="{view1}" alphaFrom="1" alphaTo="0" effectEnd="currentState = 'state2'"/>
</s:Transition>
<s:Transition fromState="*" toState="state2">
    <s:Fade target="{view2}" alphaFrom="0" alphaTo="1"/>
</s:Transition>
Будь в приложении пару окон, проблем бы не было - можно и поизвращаться. А если окон очень много, как быть? Что-то не могу пока придумать какого-то автоматизированного способа по смене состояний.

Буду признателен за советы в отношении этих двух вопросов.

Создать новую тему   Часовой пояс GMT +4, время: 15:10.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:10.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.