![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2009
Сообщений: 174
|
здравствуйте!.
есть некоторая проблема, которую не могу решить сам. надеюсь на вашу помощь. суть состоит в следующем: имеется некотрое количество однотипных кнопок. все они типа MovieClip. создаю слушателей событий: one11.addEventListener(MouseEvent.MOUSE_OVER, over1); one11.addEventListener(MouseEvent.MOUSE_OUT, out1); one11.addEventListener(MouseEvent.CLICK, mclick1); two22.addEventListener(MouseEvent.MOUSE_OVER, over2); two22.addEventListener(MouseEvent.MOUSE_OUT, out2); two22.addEventListener(MouseEvent.CLICK, mclick2); three33.addEventListener(MouseEvent.MOUSE_OVER, over3); three33.addEventListener(MouseEvent.MOUSE_OUT, out3); three33.addEventListener(MouseEvent.CLICK, mclick3); for44.addEventListener(MouseEvent.MOUSE_OVER, over4); ... для первых трёх кнопок всё нормально действует, но четвёртая и последующие выдают ошибку: 1120: Access of undefined property over4. менял имя "over4" на всякие разные. ничего не помогает. как можно справиться с проблемой? |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 174
|
ну мне просто надо создать для каждой из 10 кнопок чтобы при наведении изменялся цвет(проигрывается ролик внутри кнопки), при отведении цвет возвращался в первоначальную позицию, ну и при нажатии цвет. я не знаю как сделать подругому. знаю только так) .
Цитата:
|
|
|||||
var btnsArray:Array = [one11,two22,three33,for44]; function outHandler(e:MouseEvent){ (e.target as ButtonClass).setDefaultLightMethod(); } function overHandler(e:MouseEvent){ (e.target as ButtonClass).setHighLightMethod(); } function clickHandler(e:MouseEvent){ //do something } var button:ButtonClass; for each(button in btnsArray){ button .addEventListener(MouseEvent.MOUSE_OVER, overHandler); button .addEventListener(MouseEvent.MOUSE_OUT, outHandler); button .addEventListener(MouseEvent.CLICK, clickHandler); }
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 174
|
Ошибку решил. просто видимо если определяешь слушателя и действие, то нужно типа сразу использовать его. я написал для 4-й кнопки:
function over4(events:Event):void{ for44.gotoAndStop(2);} function out4(events:Event):void{ for44.gotoAndStop(1);} function mclick4(events:Event):void{ if (MouseEvent.CLICK){ for44.gotoAndStop(2); for44.removeEventListener(MouseEvent.MOUSE_OVER, over4); for44.removeEventListener(MouseEvent.MOUSE_OUT, out4);}} cleptoman, спасибо конечно, но для меня это покачто сложновато). уж лучше буду стопитсот одинаковых кодов писать. |
|
|||||
|
if (MouseEvent.CLICK){} порадовало ))
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 174
|
ну какбы.. работает и ладно))
а что не так? |
|
|||||
|
то что это условие всегда будет выполянться )..MouseEvent.CLICK - это статичный стринг..при приведении к булевой будет всегда тру. это все равно что написать if(true){}
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
Регистрация: Jul 2013
Сообщений: 10
|
А теперь мне помочь, та же проблема:
package { import flash.display.Sprite; import flash.display.SimpleButton; import flash.events.MouseEvent; public class splash extends Sprite { public var main_class:the_game; public function splash(passed_class:the_game) { main_class = passed_class; play_button.addEventListener(MouseEvent.CLICK, on_play_button_clicked); option_button.addEventListener(MouseEvent.CLICK, on_how_to_button_clicked); } public function on_play_button_clicked(event:MouseEvent) { main_class.play_the_game(); } public function on_how_to_button_clicked(event:MouseEvent) { main_class.show_options(); } } } Последний раз редактировалось iNils; 16.07.2013 в 20:00. |
|
|||||
|
Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
|
1. Обрамляйте код тэгами [as3]
2. Ошибок в Вашем коде нет, скорее всего проблема с именем (instance name) второй кнопки.
__________________
Нормально делай — нормально будет! |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:25. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| ошибка 1120 |
|
|