![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2008
Сообщений: 7
|
Доброго времени суток, уважаемые форумчане !
Прошу Вашего совета. Как сделать чтоб при выборе this, круг действий происходил 1 раз, только над этим обектом ( увеличил, повернул ---> вернул обратно), а остальные будут оставатся незадействованны ? Т.е. на сцене, есть Мувики, к ним применяем этот класс, кликнул --> увеличил ---> кликнул еще, но на другой мувик, этот вернулся в прежнее состояние... Как то так ! з.ы. Просьба ногами сильно непинать, совсем совсем начинающий писака кода ![]() package action_cs { import flash.display.*; import flash.events.*; import fl.transitions.*; import fl.transitions.easing.*; public class test extends MovieClip { private var scaleMapX:Tween; private var rotateMap:Tween; private var scaleMapY:Tween; private var scaleNoneMapX:Tween; private var scaleNoneMapY:Tween; private var rotateN:Tween; public function test() { this.addEventListener(MouseEvent.CLICK, onClick); } private function onClick(event:MouseEvent):void { var topPosition:uint = this.parent.numChildren - 1; this.parent.setChildIndex(this, topPosition); scaleMapX = new Tween(this,"scaleX",Regular.easeOut,this.scaleX,1.5,20,false); scaleMapY = new Tween(this,"scaleY",Regular.easeOut,this.scaleY,1.5,20,false); rotateMap = new Tween(this,"rotation",Regular.easeOut,this.rotation,50,20,false); this.addEventListener(MouseEvent.CLICK, onOut); this.removeEventListener(MouseEvent.CLICK, onClick); } private function onOut(e:MouseEvent):void { this.parent.setChildIndex(this, this.numChildren); if (this.scaleX == scaleMapX.finish) { scaleNoneMapX = new Tween(this,"scaleX",Regular.easeOut,this.scaleX,1,20,false); scaleNoneMapY = new Tween(this,"scaleY",Regular.easeOut,this.scaleY,1,20,false); rotateN = new Tween(this,"rotation",Regular.easeOut,this.rotation,0,20,false); this.removeEventListener(MouseEvent.CLICK, onOut); this.addEventListener(MouseEvent.CLICK, onClick); } } } } |
|
|||||
|
В родителе храните что нибудь типа _currentClip, от мувиков посылайте события, а родитель уже сам разберётся кого спрятать а кого показать.
__________________
O God! The Aftermath. |
|
|||||
|
Регистрация: Dec 2008
Сообщений: 7
|
Спасибо, но как главное это реализавть ?
немного примера для понимания, если незатруднит. Последний раз редактировалось КГБ; 01.04.2010 в 20:46. |
|
|||||
public static const REMEMBER_ME:String = "event:rememberme" ... private function onClick(e:MouseEvent):void{ dispatchEvent(new Event(REMEMBER_ME)); } Давать имена классов принято с большой буквы, чем раньше Вы это научитесь делать, тем раньше придёт к Вам счастье)
__________________
if (love is true) break my.heart; |
|
|||||
|
Регистрация: Dec 2008
Сообщений: 7
|
совет про большие буквы принял...
А вот с Вашим примером тяжеловато, чувствую сильный провал в знаниях )) Добавлено через 15 часов 12 минут при использовании класса, Невыходит каменный цветок ! А в таком виде на таймлайне работает ... import fl.transitions.Tween; import fl.transitions.easing.*; import fl.transitions.TweenEvent; import fl.transitions.Rotate; stop(); lic_img_mc.buttonMode = true; lic3_img_mc.buttonMode = true; lic1_img_mc.buttonMode = true; lic2_img_mc.buttonMode = true; lic_img_mc.addEventListener(MouseEvent.CLICK, onClick); lic2_img_mc.addEventListener(MouseEvent.CLICK, onClick); lic3_img_mc.addEventListener(MouseEvent.CLICK, onClick); lic1_img_mc.addEventListener(MouseEvent.CLICK, onClick); var Img = MovieClip; function onClick(e:MouseEvent):void { Img = e.currentTarget; addChild(Img); var scaleMapX:Tween = new Tween(Img,"scaleX",Regular.easeOut,Img.scaleX,1,20,false); var scaleMapY:Tween = new Tween(Img,"scaleY",Regular.easeOut,Img.scaleY,1,20,false); var rotate:Tween = new Tween(Img,"rotation",Regular.easeOut,Img.rotation,0,20,false); scaleMapX.addEventListener(TweenEvent.MOTION_FINISH,scaleFin); scaleMapY.addEventListener(TweenEvent.MOTION_FINISH,scaleFin); rotate.addEventListener(TweenEvent.MOTION_FINISH,scaleFin); var my_sound:Sound = new Sound(new URLRequest("imaige/click1.mp3")); my_sound.play(); } function scaleFin(e:TweenEvent):void { lic_img_mc.removeEventListener(MouseEvent.CLICK, onClick); lic2_img_mc.removeEventListener(MouseEvent.CLICK, onClick); lic3_img_mc.removeEventListener(MouseEvent.CLICK, onClick); lic1_img_mc.removeEventListener(MouseEvent.CLICK, onClick); lic_img_mc.addEventListener(MouseEvent.CLICK, onOut); lic2_img_mc.addEventListener(MouseEvent.CLICK, onOut); lic3_img_mc.addEventListener(MouseEvent.CLICK, onOut); lic1_img_mc.addEventListener(MouseEvent.CLICK, onOut); } function onOut(e:MouseEvent):void { var my_sound:Sound = new Sound(new URLRequest("imaige/click.mp3")); my_sound.play(); var scaleNoneMapX:Tween = new Tween(Img,"scaleX",Regular.easeOut,Img.scaleX,.32,20,false); var scaleNoneMapY:Tween = new Tween(Img,"scaleY",Regular.easeOut,Img.scaleY,.32,20,false); var rotateN:Tween = new Tween(Img,"rotation",Regular.easeOut,Img.rotation,-21,20,false); scaleNoneMapX.addEventListener(TweenEvent.MOTION_FINISH,scaleFin1); scaleNoneMapY.addEventListener(TweenEvent.MOTION_FINISH,scaleFin1); rotateN.addEventListener(TweenEvent.MOTION_FINISH,scaleFin1); } function scaleFin1(e:TweenEvent):void { lic_img_mc.removeEventListener(MouseEvent.CLICK, onOut); lic2_img_mc.removeEventListener(MouseEvent.CLICK, onOut); lic3_img_mc.removeEventListener(MouseEvent.CLICK, onOut); lic1_img_mc.removeEventListener(MouseEvent.CLICK, onOut); lic_img_mc.addEventListener(MouseEvent.CLICK, onClick); lic2_img_mc.addEventListener(MouseEvent.CLICK, onClick); lic3_img_mc.addEventListener(MouseEvent.CLICK, onClick); lic1_img_mc.addEventListener(MouseEvent.CLICK, onClick); } |
|
|||||
|
Регистрация: Dec 2008
Сообщений: 7
|
Помогите добить код, у самого неплучается
![]() |
|
|||||
|
Откуда нам знать, что именно у вас за "каменный цветок"?
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Dec 2008
Сообщений: 7
|
Как сделать, чтоб при выборе "this" в *.as, действие происходило 1 раз, только над обектом с которогр начал событие ( увеличил, повернул ---> вернул обратно), а остальные будут оставатся незадействованны ?
Т.е. на сцене, есть Мувики, к ним применяем этот класс, кликнул --> увеличил ---> кликнул еще, но на другой мувик, Увеличенный вернулся в прежнее состояние... Как то так ! test.rar |
|
|||||
|
Регистрация: Dec 2008
Сообщений: 7
|
Спасибо, добрый человек !!!
Добавлено через 25 минут ...и чтоб клик по уже увеличенному обекту так же возвращал его на место. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:22. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|