|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
[6 07.05.06]
Регистрация: Dec 2005
Сообщений: 98
|
Как отследить, когда заканчивается движение в функции
Заранее извиняюсь, что размещаю тут пост, но в начинающих мне не ответили (
Есть у меня 9 квадратиков, они движутся по координатам, которые я задаю в массиве coord, движения сделал функцией movieSquare. Вот код: 1. stop(); 2. import mx.transitions.*; 3. import mx.transitions.easing.*; 4 .movieSquare = function(tween,namen,maxX,maxY,interval){ 5. var tween = new Tween(namen, "_y", None.easeOut, namen._y, maxY, interval, true); 6. var tween = new Tween(namen, "_x", None.easeOut, namen._x, maxX, interval, true); 7. } 8. 9. for (i=1;i<=9;i++){ 10. var movieName = _root["square_"+i]; 11. var tweenName = ["tween_"+i]; 12. movieSquare(tweenName,movieName,coord[i].endX,coord[i].endY,2.8); 13. } Пробовал вставить в функцию после var tween (6 строчка) tween_5.onMotionFinished=function(){....} (после анимации пятого квадрата) tween_9.onMotionFinished=function(){....} (после всех анимаций квадратов) ничего не выходит... функция не воспринимает эту строку. может подскажите, как можно решить эту траблу. Заранее благодарен! |
|
|||||
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
|
Что я не помню, что бы ваша тема была в начинающих.
Что значит "функция не воспринимает эту строку"? Какую строку и какая функция? И к чему нам ваша нумерация строк, мы потом должны вручную их убирать? Комменты надо просто писать. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Цитата:
|
|
|||||
[6 07.05.06]
Регистрация: Dec 2005
Сообщений: 98
|
вчера в 14-46 :-) писал пост этот!
ну если в тупую прописать: stop(); import mx.transitions.*; import mx.transitions.easing.*; var tween_1 = new Tween(square_1, "_y", None.easeOut, square_1._y, 230, 3.5, true); var tween_1 = new Tween(square_1, "_x", None.easeOut, square_1._x, 327, 3.5, true); var tween_2 = new Tween(square_2, "_y", None.easeOut, square_2._y, 230, 3.5, true); var tween_2 = new Tween(square_2, "_x", None.easeOut, square_2._x, 377, 3.5, true); var tween_3 = new Tween(square_3, "_y", None.easeOut, square_3._y, 230, 3.5, true); var tween_3 = new Tween(square_3, "_x", None.easeOut, square_3._x, 427, 3.5, true); var tween_4 = new Tween(square_4, "_y", None.easeOut, square_4._y, 280, 3.5, true); var tween_4 = new Tween(square_4, "_x", None.easeOut, square_4._x, 327, 3.5, true); var tween_5 = new Tween(square_5, "_y", None.easeOut, square_5._y, 280, 3.5, true); var tween_5 = new Tween(square_5, "_x", None.easeOut, square_5._x, 377, 3.5, true); var tween_6 = new Tween(square_6, "_y", None.easeOut, square_6._y, 280, 3.5, true); var tween_6 = new Tween(square_6, "_x", None.easeOut, square_6._x, 427, 3.5, true); var tween_7 = new Tween(square_7, "_y", None.easeOut, square_7._y, 330, 3.5, true); var tween_7 = new Tween(square_7, "_x", None.easeOut, square_7._x, 327, 3.5, true); var tween_8 = new Tween(square_8, "_y", None.easeOut, square_8._y, 330, 3.5, true); var tween_8 = new Tween(square_8, "_x", None.easeOut, square_8._x, 377, 3.5, true); var tween_9 = new Tween(square_9, "_y", None.easeOut, square_9._y, 330, 3.5, true); var tween_9 = new Tween(square_9, "_x", None.easeOut, square_9._x, 427, 3.5, true); tween_5.onMotionFinished=function(){ действие } Вот так я упростил свой код, написанный выше stop(); import mx.transitions.*; import mx.transitions.easing.*; movieSquare = function(tween,namen,maxX,maxY,interval){ var tween = new Tween(namen, "_y", None.easeOut, namen._y, maxY, interval, true); var tween = new Tween(namen, "_x", None.easeOut, namen._x, maxX, interval, true); tween_5.onMotionFinished=function(){ действие } } for (i=1;i<=9;i++){ var movieName = _root["square_"+i]; var tweenName = ["tween_"+i]; movieSquare(tweenName,movieName,coord[i].endX,coord[i].endY,2.8); } |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
stop(); import mx.transitions.*; import mx.transitions.easing.*; movieSquare = function(tween,namen,maxX,maxY,interval){ var tween1 = new Tween(namen, "_y", None.easeOut, namen._y, maxY, interval, true); var tween2 = new Tween(namen, "_x", None.easeOut, namen._x, maxX, interval, true); return tween1; } for (i=1;i<=9;i++){ var movieName = _root["square_"+i]; var tween = movieSquare(tweenName,movieName,coord[i].endX,coord[i].endY,2.8); if (i==5) { tween.onMotionFinished = function() { trace(this.obj); } } } |
|
|||||
[6 07.05.06]
Регистрация: Dec 2005
Сообщений: 98
|
я, в дальнейшем, буду брать для каждого мува разные времена на анимацию, тогда будет не одно время...
Спасибо, огромное, работает! Вопрос, для себя - в функции tween1, tween2, а возвращает функция tween1 - почему? |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Ну можно tween2, если хотите, не принципиально. Первый твинит _x, второй _y, по длительности одинаковы. Т.е. без разницы, на какой навешивать onMotionFinished.
|
|
|||||
[6 07.05.06]
Регистрация: Dec 2005
Сообщений: 98
|
Все, понял, спасибо огромное!
|
Часовой пояс GMT +4, время: 23:20. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|