|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
[+1 03.01.12]
[++1 03.01.12] Регистрация: Dec 2011
Сообщений: 29
|
Как Правильно обратиться к мувиклипу на сцене
Доброго дня суток
Столкнулся с такой проблемой, На основной сцене есть мувиклип. В конце анимации появляется кнопка. Вопрос Как с основной сцены обратится к этой кнопке ?? ибо на мои попытки он отвечает матом. ) а пытаю я, следующим образом mc_1 лежит на основной сцене, основная сцена 1 кадр, в mc_1-70 |
|
|||||
Регистрация: Nov 2010
Сообщений: 434
|
1) Пишите код в классах, если пишите не в них (так намного удобнее и лучше, поверьте)
2) Чтобы матершины на ваши попытки не было) нужно обращаться к кнопке, только тогда когда она появиться, а именно в конце анимации, как это сделать решайте сами, можно поставить условие |
|
|||||
Регистрация: Nov 2010
Сообщений: 430
|
Цитата:
Затем в нужном кадре увеличить до 100%. Память будет занимать, конечно, но, думаю, не критично.
__________________
Лучше спросить и выставить себя дураком на пять минут, чем не спросить и остаться дураком на всю жизнь. |
|
|||||
[+1 03.01.12]
[++1 03.01.12] Регистрация: Dec 2011
Сообщений: 29
|
Перенес я все это в классы.
Но почему то не хочет срабатывать лисенер и вызывать функцию, выглядит это примерно так package { import flash.display.MovieClip; import flash.events.MouseEvent; public class myclass extends MovieClip { public function myclass() { menu_bar.btn_1.addEventListener(MouseEvent.MOUSE_OVER, anim_play); menu_bar.btn_1.addEventListener(MouseEvent.MOUSE_OUT, anim_play); function anim_play (e:MouseEvent):void { trace(e); menu_bar.btn_mc.play(); } |
|
|||||
Регистрация: Nov 2010
Сообщений: 434
|
в классе тоже придётся обращаться к кнопке когда она появиться
adobe flash у меня сейчас не установлен так что за правильность ручаться не могу, не проверял, но примерно так должно быть mc_1.addEventListener(Event.ENTER_FRAME, enterFrame); private function enterFrame (e: Event):void { if (mc_1.currentFrame == mc_1.totalFrames) { mc_1.btn_1.addEventListener(MouseEvent.MOUSE_OVER, anim_play); //если кнопка лежит в мувиклипе mc_1 mc_1.btn_1.play(); } } private function anim_play (e:MouseEvent):void { trace(e); mc_1.btn_1.play(); } Цитата:
Последний раз редактировалось ЗлОй ПрОграММер; 16.02.2012 в 13:39. |
|
|||||
[+1 03.01.12]
[++1 03.01.12] Регистрация: Dec 2011
Сообщений: 29
|
Спс огромный.
Я в АС дуб бубом ((( . Подскажите плиз Как правильно сделать проверку на какую кнопку навел мышкой ? чтоб не плодить 150 функций. |
|
|||||
Регистрация: Nov 2010
Сообщений: 434
|
каждой кнопке задавайте имя name = "button1"; и повесьте слушатель на каждую кнопку
потом в обработчике события можно узнать имя кнопки e.target.name кстати можно и так анимацию кнопки запустить e.target.play(); Последний раз редактировалось ЗлОй ПрОграММер; 16.02.2012 в 13:40. |
|
|||||
[+1 03.01.12]
[++1 03.01.12] Регистрация: Dec 2011
Сообщений: 29
|
О великий гурру ))) Бью челом и низко кланяюсь ))
|
|
|||||
.
|
const _buttonOne:SimpleButton = new SimpleButton(); const _buttonTwo:SimpleButton = new SimpleButton(); super.addChild(this._buttonOne); super.addChild(this._buttonTwo); super.addEventListener(MouseEvent.CLICK, this.handler_click); function handler_click(event:Event):void { switch (event.target) { case this._buttonOne: // do button one action break; case this._buttonTwo: // do button two action break; } } |
|
|||||
Можно switch-case реализовать побыстрее (правда, к теме это уже мало относится):
const _buttonOne:SimpleButton = new SimpleButton(); const _buttonTwo:SimpleButton = new SimpleButton(); const _handlers:Dictionary = new Dictionary(); super.addChild(this._buttonOne); super.addChild(this._buttonTwo); _handlers[this._buttonOne] = this.handler_buttonOne; _handlers[this._buttonTwo] = this.handler_buttonTwo; super.addEventListener(MouseEvent.CLICK, this.handler_click); function handler_click(event:Event):void { if (event.target in this._handlers) (this._handlers[event.target] as Function).call(null); }
__________________
...вселенская грусть |
Часовой пояс GMT +4, время: 18:01. |
|
« Предыдущая тема | Следующая тема » |
|
|