![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2010
Сообщений: 434
|
Как правильно сделать обработчик события motionFinish ???
сделал так: private var tween: Tween; tween.addEventListener(TweenEvent.MOTION_FINISH, TweenFinished); function TweenFinished(e: TweenEvent):void{ trace("Ок"); } Что я сделал не так ??? Последний раз редактировалось ЗлОй ПрОграММер; 27.01.2011 в 12:22. |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 434
|
Создал ! вообщем нашёл пример с motionFinish и переделал свой код, в нём два раза описал событие
и всё заработало function MouseOver(e: MouseEvent):void{ MOver = true; Mouse.cursor = MouseCursor.BUTTON; tween = new Tween(this, "y", Bounce.easeOut, y, stateY+7, 10, false); tween.addEventListener(TweenEvent.MOTION_FINISH, TweenFinished); } function MouseOut(e: MouseEvent):void{ MOver = false; Mouse.cursor = MouseCursor.ARROW; tween = new Tween(this, "y", None.easeNone, y, stateY, 5, false); tween.addEventListener(TweenEvent.MOTION_FINISH, TweenFinished); } Последний раз редактировалось ЗлОй ПрОграММер; 27.01.2011 в 12:37. |
|
|||||
|
А ты покажи код, где создаешь.
В этом коде ты подписываешься каждый раз на новый экземпляр твина, потому это единственный выход в общем-то. Только ты не забывай отписать старый твин перед тем, как старой ссылке назначишь новый экземпляр. |
|
|||||
|
вы два раза создаете объект. логично его каждый раз подписывать на нужные события (не описывать).
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
Но у тебя два разных твина - поэтому приемлемо. Только твой подход не закончен - если навести мышь а потом быстро убрать - то второй твин начнется до того как закончится первый и элемент может зависнуть и ни тот ни другой твин не завершатся. Надо останавливать твин вобщем перед назначением нового.
|
|
|||||
|
Регистрация: Nov 2010
Сообщений: 434
|
а я сделал событие когда анимация завершается, и там проверяется если картинка находится не там где положено она возвращается на место. вот весь этот мой безобразный код ))):
package { import flash.display.MovieClip; import fl.transitions.Tween; import fl.transitions.TweenEvent; import fl.transitions.easing.*; import flash.events.MouseEvent; import flash.events.Event; import flash.net.navigateToURL; import flash.net.URLRequest; import flash.ui.Mouse; import flash.ui.MouseCursor; fl.transitions.TweenEvent.MOTION_FINISH; public class Animation extends MovieClip{ private var stateY: int = y; private var timeY: int; private var tween: Tween; private var time: int = 10; private var MOver: Boolean; public var url: String = "http://www.yandex.ru/"; public function Animation() { addEventListener(MouseEvent.MOUSE_OVER, MouseOver); addEventListener(MouseEvent.MOUSE_OUT, MouseOut); addEventListener(MouseEvent.CLICK, MouseClick); } function MouseOver(e: MouseEvent):void{ MOver = true; Mouse.cursor = MouseCursor.BUTTON; tween = new Tween(this, "y", Regular.easeOut, y, stateY+10, time, false); tween.addEventListener(TweenEvent.MOTION_FINISH, TweenFinished); } function MouseOut(e: MouseEvent):void{ MOver = false; Mouse.cursor = MouseCursor.ARROW; tween = new Tween(this, "y", None.easeNone, y, stateY, time, false); //tween.addEventListener(TweenEvent.MOTION_FINISH, TweenFinished); } function MouseClick(e: MouseEvent):void{ navigateToURL(new URLRequest(url), "_self"); } function TweenFinished(e: TweenEvent):void{ if ((!MOver)&&(y != stateY)) tween = new Tween(this, "y", None.easeNone, y, stateY, time, false); } } } Последний раз редактировалось ЗлОй ПрОграММер; 27.01.2011 в 14:51. |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:24. |
|
|
« Предыдущая тема | Следующая тема » |
|
|