Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с addEventListener 
:(
    Опции темы
ilor
Дата 8.7.2009, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 8.7.2009

Репутация: нет
Всего: нет



Код

function clickSquare(i:int,k:int){
    squares[i][k].x++;
}

var squareW:int = 50;
var squareH:int = 50;
var squares: Array = new Array(new Array);

for(var i:int = 0; i < 3; i++){
    squares.push(new Array(new Shape()));
    for(var k:int = 0; k < 3; k++){
        squares[i].push(new Shape());
        squares[i][k].graphics.beginFill(0x000000);
        squares[i][k].graphics.drawRect(squareW*i, squareH*k, squareW, squareH); 
        addChild(squares[i][k]);
        squares[i][k].addEventListener(MouseEvent.CLICK, clickSquare(i,k));
    }
}

Возникает следующая ошибка:
Код

TypeError: Error #2007: Параметр listener не должен быть равен нулю.
    at flash.events::EventDispatcher/addEventListener()
    at Untitled_fla::MainTimeline/frame1()[Untitled_fla.MainTimeline::frame1:18]
Cannot display source code at this location.

Подскажите, как можно исправить данную ошибку?

Это сообщение отредактировал(а) ilor - 8.7.2009, 20:24
PM MAIL   Вверх
magician7
Дата 8.7.2009, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 7.5.2009
Где: Киев

Репутация: нет
Всего: нет



Код

squares[i][k].addEventListener(MouseEvent.CLICK, clickSquare);


Код

function clickSquare(e:MouseEvent){
    e.[тут не помню, посмотри в мануале, там передается обьект по какому кликнули].x++
}


Это сообщение отредактировал(а) magician7 - 8.7.2009, 20:55
PM MAIL WWW   Вверх
ilor
Дата 8.7.2009, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 8.7.2009

Репутация: нет
Всего: нет



Цитата

[тут не помню, посмотри в мануале, там передается обьект по какому кликнули]

Не могу что-то найти. Помогите пожалуйста, если не сложно. Заранее благодарен.
PM MAIL   Вверх
Shogun
Дата 9.7.2009, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сёгун-сан
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 8.6.2006
Где: Кишинёв

Репутация: нет
Всего: 11



Код

function clickSquare(e:MouseEvent){
    e.target // Это объект  по которому кликнули
}



--------------------
2b || !2b
PM MAIL ICQ Skype   Вверх
ilor
Дата 9.7.2009, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 8.7.2009

Репутация: нет
Всего: нет



Спасибо большое, ошибок нет. Но квадраты не кликабельны.
На данный момент:
Код

var squareW:int = 50;
var squareH:int = 50;
var squares: Array = new Array(new Array);

for(var i:int = 0; i < 3; i++){
    squares.push(new Array(new Shape()));
    for(var k:int = 0; k < 3; k++){
        squares[i].push(new Shape());
        squares[i][k].graphics.beginFill(0x000000);
        squares[i][k].graphics.drawRect(squareW*i, squareH*k, squareW, squareH); 
        addChild(squares[i][k]);
        squares[i][k].addEventListener(MouseEvent.CLICK, clickSquare);        
    }
}

function clickSquare(e:MouseEvent){
    e.target.x++;
}

PM MAIL   Вверх
magician7
Дата 9.7.2009, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 7.5.2009
Где: Киев

Репутация: нет
Всего: нет



Странно, но действительно с Shape это не работает, зато при замене его на Sprite все отлично работает
PM MAIL WWW   Вверх
ilor
Дата 9.7.2009, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 8.7.2009

Репутация: нет
Всего: нет



Не помогло...Не всегда срабатывает событие после щелчка.

Это сообщение отредактировал(а) ilor - 9.7.2009, 15:14
PM MAIL   Вверх
magician7
Дата 9.7.2009, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 7.5.2009
Где: Киев

Репутация: нет
Всего: нет



Я только немного код изменил.

Код

var squares: Array = new Array();
for(var i:int = 0; i < 3; i++){
    squares[i] = new Array();
    for(var k:int = 0; k < 3; k++){
        squares[i][k] = new Sprite();
        squares[i][k].graphics.beginFill(0x000000);
        squares[i][k].graphics.drawRect(squareW*i, squareH*k, squareW, squareH); 
        addChild(squares[i][k]);
        squares[i][k].addEventListener(MouseEvent.CLICK, clickSquare);        
    }
}

при этом все события работают нормально

Это сообщение отредактировал(а) magician7 - 9.7.2009, 16:30
PM MAIL WWW   Вверх
ilor
Дата 9.7.2009, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 8.7.2009

Репутация: нет
Всего: нет



Хм. Странно, скопипастил в новый проект - все получилось... Спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 3 | Следующая тема »


 




[ Время генерации скрипта: 0.1083 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.