![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2008
Сообщений: 77
|
Привет Всем!
Некий объект по клику зумится, по второму клику едет обратно, нужно сделать так, что-бы пока mapScaleIn() работает mapScaleOut() вызвать было нельзя. В чем неправ? import fl.transitions.TweenEvent; import fl.transitions.Tween; import fl.transitions.easing.*; var zoomAvailable:Boolean = true; function unlockTween(event:TweenEvent):void { zoomAvailable = true; } function mapScaleIn() { if (!zoomAvailable) { return; } zoomAvailable = false; myTween_scaleX = new Tween(main_mc, "scaleX", Regular.easeIn, mainScaleX, mainScaleXin, 1, true); myTween_scaleY = new Tween(main_mc, "scaleY", Regular.easeIn, mainScaleY, mainScaleYin, 1, true); myTween_scaleX.addEventListener(TweenEvent.MOTION_FINISH, unlockTween); } function mapScaleOut() { if (!zoomAvailable) { return; } zoomAvailable = false; myTween_scaleX2 = new Tween(main_mc, "scaleX", Regular.easeIn, mainScaleXin, mainScaleX, 1, true); myTween_scaleY2 = new Tween(main_mc, "scaleY", Regular.easeIn, mainScaleYin, mainScaleY, 1, true); myTween_scaleX2.addEventListener(TweenEvent.MOTION_FINISH, unlockTween); } function setPosition() { if (selectedUnit == 1) { myTween1_desc = new Tween(nADesc_mc, "x", Regular.easeIn, nADescX , nADescXin, 1, true); myTween2_desc = new Tween(nADesc_mc, "alpha", Regular.easeIn, 0, 1, 1, true); myTween1 = new Tween(main_mc, "x", Regular.easeIn, mainX , NAcenterX, 1, true); myTween2 = new Tween(main_mc, "y", Regular.easeIn, mainY , NAcenterY, 1, true); } else { myTween3_desc = new Tween(europeDesc_mc, "x", Regular.easeIn, europeDescX , europeDescXin, 1, true); myTween4_desc = new Tween(europeDesc_mc, "alpha", Regular.easeIn, 0, 1, 1, true); myTween3 = new Tween(main_mc, "x", Regular.easeIn, mainX , EURcenterX, 1, true); myTween4 = new Tween(main_mc, "y", Regular.easeIn, mainY , EURcenterY, 1, true); } mapScaleIn(); invisBtn_mc.visible = true; } |
|
|||||
|
да ловится событие MOTION_FINISH, дело видимо в чем-то еще..
приведенный обрывок абсолютно ни о чем не говорит если есть косяк, то не поленись дать его пример, который можно взять и потестить, не домысливая логику и не достраивая недостающее.. к слову, о логике: у Твина есть свойство isPlaying, можно по-простому его смотреть, чтобы определить можно ли запускать другой твин.. |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 77
|
Последний раз редактировалось ptirA; 19.12.2008 в 22:19. |
|
|||||
|
исходники, да еще в таком количестве здесь не причем..
не думаю, что найдется много охотников поискать баги в чужом проекте выдели трабл ("не ловится TweenEvent.MOTION_FINISH", например) в отдельный пример и приведи.. зы:нужно сделать так, что-бы пока mapScaleIn() работает mapScaleOut() вызвать было нельзя. import fl.transitions.Tween; var mc:MovieClip= new MovieClip(); var tX:Tween; var tY:Tween; mc.graphics.beginFill(0x808080); mc.graphics.drawRect(0, 0, 60, 40); mc.addEventListener(MouseEvent.CLICK, eMcClick); mc.x=50; mc.y=50; addChild(mc); function scaleIn():void { tX=new Tween(mc,"scaleX",null,1,0.5,20); tY=new Tween(mc,"scaleY",null,1,0.5,20); } function scaleOut():void { tX=new Tween(mc,"scaleX",null,0.5,1,20); tY=new Tween(mc,"scaleY",null,0.5,1,20); } function eMcClick(e:MouseEvent):void { if (tX && tX.isPlaying) return; if (mc.scaleX<1) { scaleOut(); } else { scaleIn(); } } |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 77
|
Большое спасибо.
|
|
|||||
|
Немного не по теме, но все же...
TweenLight работает примерно в 200 (если не ошибаюсь) раз быстрее, гораздо удобнее и проще.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 77
|
Пока нахожусь на стадии, когда самому интересно разобраться. Когда вопросов не останется с удовольствием буду пользовать TweenLite, gTween и tweenMAX :-)
Последний раз редактировалось ptirA; 22.12.2008 в 19:33. |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:36. |
|
|
« Предыдущая тема | Следующая тема » |
|
|