Показать сообщение отдельно
Старый 11.12.2006, 15:48
yana_flash вне форума Посмотреть профиль Отправить личное сообщение для yana_flash Найти все сообщения от yana_flash
  № 5  
Ответить с цитированием
yana_flash

Регистрация: Oct 2003
Сообщений: 74
Спасибо за помощь! Через полчаса проб и ошибок все заработало

На всякий случай, приведу решение собственной задачки - может, это поможет кому-то из коллег по освоению Flex'а. Итак, чтобы в стандартном примере ViewStates (Help -> Help Contents -> Getting Started with Flex2 -> Lessons -> Use View States and Transitions), эффект проявления дополнительных опций работал бы не только при переходе из базового состояния в Advanced, но и при обратном переходе из Advanced в базовое дополнительные опции исчезали, делаем следующее:

Меняем EventHandler:
Код:
<mx:State name="Advanced">
...
	<mx:SetEventHandler target="{linkbutton1}" name="click" handler="changeStateFromAdvancedToBase(myVBox)"/> // Изменяемая строка
</mx:State>
В конец исходного кода добавляем AS3-скрипт:

Код:
	</mx:Panel>
// Начало добавляемого фрагмента
	<mx:Script><![CDATA[
import mx.effects.*;
import mx.events.*;

static public var wipeDownEffect : WipeDown = new WipeDown();
wipeDownEffect.duration = 2000;
static public var dissolveEffect : Dissolve = new Dissolve();
dissolveEffect.alphaFrom = 0;
dissolveEffect.alphaTo = 1;
dissolveEffect.duration = 2000;
static public var p : Parallel = new Parallel();
p.addChild(wipeDownEffect);
p.addChild(dissolveEffect);

static private function changeStateFromAdvancedToBase_Listener(evt:Event):void {
	Application.application.currentState = "";
}

p.addEventListener(mx.events.EffectEvent.EFFECT_END,changeStateFromAdvancedToBase_Listener);

public function changeStateFromAdvancedToBase(target : Object):void {
	p.play([target],true);
}

	]]></mx:Script>
// Конец добавляемого фрагмента
</mx:Application>