![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2010
Сообщений: 8
|
Создал символ, разместил его на сцене, присвоил имя (but_1) и поставл галочку экспорта для АС. При попытке запустить среда (CS5) виснет! В самом символе написан код (задачка - анимированная кнопка, необходимо ее анимацию запускать\останавливать из самой себя):
import flash.display.MovieClip; var t:Boolean; var but:MovieClip = new but_1; // < вот этот момент, подскажите but.buttonMode=true; //далее идёт блок объявления слушателей для событий but.addEventListener(MouseEvent.MOUSE_OVER, rollover); but.addEventListener(MouseEvent.MOUSE_OUT, rollout); but.addEventListener(Event.ENTER_FRAME, enter_); but.addEventListener(MouseEvent.MOUSE_DOWN, click_); function click_(e:MouseEvent):void { //сюда пишем что будет происходить по клику //trace("click"); } function rollover(e:MouseEvent):void { t=true; } function rollout(e:MouseEvent):void { t=false; } function enter_(e:Event):void { if (t == true){ e.target.nextFrame(); } else{e.target.prevFrame();} } |
|
|||||
|
Регистрация: Mar 2007
Сообщений: 545
|
1 Что значит виснет, может просто ничего не отображается?
2 Если вы создали и разместили его на сцене, зачем создаете его еще раз var but:MovieClip = new but_1; // < вот этот момент, подскажите (правильнее new but_1()); Если это и есть создание, то тут нет его добавления на сцену. |
|
|||||
|
Если вы наваяли это в кадрах самого клипа, то не удивительно, что у вас плеер виснет. Вы добавили клип на сцену, он тут же автоматом создал свою копию (не добавляя ее в дисплейлист), копия в свою очередь создала еще одну копию, ну и т.д.
Добавлено через 4 минуты если собираетесь и дальше писать в кадрах... import flash.display.MovieClip; var t:Boolean; buttonMode=true; //далее идёт блок объявления слушателей для событий addEventListener(MouseEvent.MOUSE_OVER, rollover); this.addEventListener(MouseEvent.MOUSE_OUT, rollout); //или так addEventListener(Event.ENTER_FRAME, enter_); addEventListener(MouseEvent.MOUSE_DOWN, click_); function click_(e:MouseEvent):void { //сюда пишем что будет происходить по клику //trace("click"); } function rollover(e:MouseEvent):void { t=true; } function rollout(e:MouseEvent):void { t=false; } function enter_(e:Event):void { if (t) //переменная у вас и так булевская, зачем ее сравнивать с true? { e.currentTarget.nextFrame(); //или mouseChildren = false, тогда можете и target использовать } else{e.currentTarget.prevFrame();} Последний раз редактировалось alatar; 27.09.2010 в 19:09. |
|
|||||
|
Регистрация: Sep 2010
Сообщений: 8
|
Большое спасибо!
|
![]() |
![]() |
Часовой пояс GMT +4, время: 23:34. |
|
|
« Предыдущая тема | Следующая тема » |
|
|