Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.02.2010, 20:38
Cornford вне форума Посмотреть профиль Отправить личное сообщение для Cornford Найти все сообщения от Cornford
  № 1  
Ответить с цитированием
Cornford

Регистрация: Oct 2009
Сообщений: 174
По умолчанию непонятная ошибка слушателей 1120

здравствуйте!.
есть некоторая проблема, которую не могу решить сам. надеюсь на вашу помощь. суть состоит в следующем:
имеется некотрое количество однотипных кнопок.
все они типа MovieClip.
создаю слушателей событий:
Код AS3:
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" на всякие разные. ничего не помогает. как можно справиться с проблемой?

Старый 12.02.2010, 20:41
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 2  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
компилятор говорит что over4 - не определено,...

а, простите, зачем столько листеров вешать?

Старый 12.02.2010, 20:59
Cornford вне форума Посмотреть профиль Отправить личное сообщение для Cornford Найти все сообщения от Cornford
  № 3  
Ответить с цитированием
Cornford

Регистрация: Oct 2009
Сообщений: 174
ну мне просто надо создать для каждой из 10 кнопок чтобы при наведении изменялся цвет(проигрывается ролик внутри кнопки), при отведении цвет возвращался в первоначальную позицию, ну и при нажатии цвет. я не знаю как сделать подругому. знаю только так) .
Цитата:
компилятор говорит что over4 - не определено,...
ну я же его определяю. так же как и все предыдущие. в чём разница?

Старый 12.02.2010, 21:09
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 4  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
Код AS3:
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: дважды благословлен на воровство. осеяный благодатью

Старый 12.02.2010, 21:30
Cornford вне форума Посмотреть профиль Отправить личное сообщение для Cornford Найти все сообщения от Cornford
  № 5  
Ответить с цитированием
Cornford

Регистрация: Oct 2009
Сообщений: 174
Ошибку решил. просто видимо если определяешь слушателя и действие, то нужно типа сразу использовать его. я написал для 4-й кнопки:
Код AS3:
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, спасибо конечно, но для меня это покачто сложновато). уж лучше буду стопитсот одинаковых кодов писать.

Старый 12.02.2010, 21:44
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 6  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
if (MouseEvent.CLICK){} порадовало ))
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 12.02.2010, 21:51
Cornford вне форума Посмотреть профиль Отправить личное сообщение для Cornford Найти все сообщения от Cornford
  № 7  
Ответить с цитированием
Cornford

Регистрация: Oct 2009
Сообщений: 174
ну какбы.. работает и ладно))
а что не так?

Старый 12.02.2010, 22:23
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 8  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
то что это условие всегда будет выполянться )..MouseEvent.CLICK - это статичный стринг..при приведении к булевой будет всегда тру. это все равно что написать if(true){}
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 16.07.2013, 17:30
hidden_HD вне форума Посмотреть профиль Отправить личное сообщение для hidden_HD Найти все сообщения от hidden_HD
  № 9  
Ответить с цитированием
hidden_HD

Регистрация: Jul 2013
Сообщений: 10
А теперь мне помочь, та же проблема:
Код AS3:
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();
		}
	}
}
на экране просто две одинаковые кнопки. только первая работает а на вторую ругается 1120 - не видит и все...


Последний раз редактировалось iNils; 16.07.2013 в 20:00.
Старый 16.07.2013, 18:17
tsarapkabel вне форума Посмотреть профиль Отправить личное сообщение для tsarapkabel Найти все сообщения от tsarapkabel
  № 10  
Ответить с цитированием
tsarapkabel
 
Аватар для tsarapkabel

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
1. Обрамляйте код тэгами [as3]
2. Ошибок в Вашем коде нет, скорее всего проблема с именем (instance name) второй кнопки.
__________________
Нормально делай — нормально будет!

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:25.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
ошибка 1120

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 22:25.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.