Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Последовательное выполнение функций (http://www.flasher.ru/forum/showthread.php?t=122483)

Acrossfy 12.03.2009 01:35

Последовательное выполнение функций
 
Здравствуйте. Есть две функции на RollOut`е. Оба события касательно одного клипа. TweenLite плавно перемещает объект на координаты (60, 60), а prod.onEnterFrame начинает крутить объект вокруг этой самой точки (60, 60).
Задача в том, чтобы функция prod.onEnterFrame не запускалась раньше, чем приблизительно закончится анимация TweenLite, ибо в противном случае(ниже код), объект мгновенно "прибивается" к точке (60, 60), и никакого плавного движения от TweenLite нет.
Код AS1/AS2:

prod.onRollOut = function() {
        TweenLite.to(prod, 0.75, {_x:60, _y:60, ease:Back.easeOut});
        prod.onEnterFrame = function(){
                angle+=5;
                var rad=angle*radStep;
                prod._x=60 + (Math.cos(rad)*xdist)/2;
                prod._y=60 + (Math.sin(rad)*ydist)/2;
        };
};

Пробовал через хепл понять, чем могут помочь мне функции setInterval и setTimeOut, однако попытки применить хотя бы каким-нибудь любым результатом не увенчались.
Заранее благодарен за любую помощь и предложения по данному вопросу.

cleptoman 12.03.2009 01:51

не работал с ТвинЛайт, но, полагаю аналоги событий onMotionFinished должны быть

Acrossfy 12.03.2009 02:56

Нет, подобного там к сожалению нет.

cleptoman 12.03.2009 03:13

тогда 2 варианта развития событий:
1) в топку твинлайт
2) сетИнтервал

iflamberg 12.03.2009 12:13

не знаю, как в AS2, но в AS3 версии TweenLite в параметрах можно передать onComplete:functionName или, там, onStart:functionName.
Уверен в AS2 тоже должно быть такое. Смотрите.

MANN 12.03.2009 18:15

Код AS1/AS2:

prod.onRollOut = function() {
        TweenLite.to(prod, 0.75, {_x:60, _y:60, ease:Back.easeOut});
        prod.onEnterFrame = function(){
                        angle = 5
                if (prod._x = 60 && prod._y = 60) {
                prod._rotation+=angle;
}
        };
};

?

Acrossfy 12.03.2009 22:30

MANN, у меня не кручение вокруг оси, а элипсоидоное движение вокруг одной точки, как колесо обозрения, и куча переменных, так что ротэйшн тут не в тему)
iflamberg, спасибо, что подсказал. Да на АS2 есть onComplete. Он и выручил.


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

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