Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   проблема с проигрыванием эффектов один за другим (http://www.flasher.ru/forum/showthread.php?t=100534)

vitaliy.urazov 29.08.2007 17:37

проблема с проигрыванием эффектов один за другим
 
Хочу сделать следующее:
на Canvas и использованием эффекта поместить некий компонент. При нажатии на кнопку с испольльзованием эффекта компонент убрать, затем добавить новый и показать его опять с эффектом.

Проблема возникает при смене компонентов (Panel). Исчезает нормально, но появляется без эффекта с задержкой, во время которой, явно работает эффект. Но компонент показыается только, когда все закончилось.

Делаю так: при нажатии на кнопку выполняю следующий код

Код:

private var z:Zoom = new Zoom();


                                z.target = workArea.getChildAt(0);
                                z.zoomHeightFrom = 1.0;
                                z.zoomHeightTo = 0.3;
                                z.zoomWidthFrom = 1.0;
                                z.zoomWidthTo = 0.3;
                                z.duration = 700;
                                z.addEventListener(EffectEvent.EFFECT_END, hideEffectEnd);
                                z.easingFunction = Back.easeOut;
                                z.play();

когда эффект заканчивает свою работу вызывается метод hideEffectEnd. Вот он:
Код:

                        private function hideEffectEnd(event:EffectEvent):void
                        {
                                workArea.removeAllChildren();
                                addNewModule2WorkArea(currentModuleObject);
                        }

в currentModuleObject ссылка на уже созданный новый компонент.

В методе addNewModule2WorkArea делаю следующее

Код:

                                workArea.addChild(el);
                                z.removeEventListener(EffectEvent.EFFECT_END,hideEffectEnd);
                                z.target = el;
                                z.zoomHeightFrom = 0.5;
                                z.zoomHeightTo = 1;
                                z.zoomWidthFrom = 0.5;
                                z.zoomWidthTo = 1;
                                z.easingFunction = Back.easeIn;
                                z.duration = 700;
                                z.play();

Почему не показывается эффект при появлении не пойму.


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

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