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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.01.2009, 13:49
RaVeN-Nikma вне форума Посмотреть профиль Отправить личное сообщение для RaVeN-Nikma Посетить домашнюю страницу RaVeN-Nikma Найти все сообщения от RaVeN-Nikma
  № 1  
Ответить с цитированием
RaVeN-Nikma

Регистрация: Jan 2003
Адрес: Latvia, Riga
Сообщений: 161
По умолчанию MouseEvent для кучи объектов

Доброе время суток.

Начал изучать AS3, так что пока я в нем полный ZERO.

Вопрос. Есть 100-400 динамически созданных объектов типа MovieClip. Нужно определить при нажатии мышки, на какой из этих объектов щелкнули. Можно ли это как-то реализовать быстрым алгоритмом, или нужно на каждый из объектов вешать addEventListener(MouseEvent.CLICK…) ?

Старый 22.01.2009, 14:02
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 2  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Нужно слушать клик только для контейнера, в котором лежат клипы.
А в обработчике смотреть event.target.
__________________
Griver

Старый 22.01.2009, 14:02
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Повесьте клик на контейнер с объектами. event.target вам всё расскажет.

Старый 22.01.2009, 16:33
RaVeN-Nikma вне форума Посмотреть профиль Отправить личное сообщение для RaVeN-Nikma Посетить домашнюю страницу RaVeN-Nikma Найти все сообщения от RaVeN-Nikma
  № 4  
Ответить с цитированием
RaVeN-Nikma

Регистрация: Jan 2003
Адрес: Latvia, Riga
Сообщений: 161
Спасибо, помогло

Почему если указывать просто event.target.name, то выводится имя не “s1”, а имя MovieClip-а который лежит внутри “s1”, нужно обязательно указать parent, после target, только тогда выводит что нужно. Я ведь вешаю listener на container1, а не на “s1”. Не могу понять логику.

Код AS3:
var rocks:Array = new Array();
var container1:MovieClip = new MovieClip();
 
rocks[0]= new mc_kletka();
rocks[0].x=26;
rocks[0].y=13;	
rocks[0].name = "s1";
container1.addChild(rocks[0]);
addChild(container1);
 
container1.addEventListener(MouseEvent.CLICK, goBack);
 
function goBack(event:MouseEvent):void {
	trace(event.target.parent.name);
}


Последний раз редактировалось RaVeN-Nikma; 22.01.2009 в 17:46.
Старый 22.01.2009, 16:47
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 5  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Код AS3:
(rocks[0] as Sprite).mouseChildren = false;
__________________
Griver

Старый 22.01.2009, 17:51
RaVeN-Nikma вне форума Посмотреть профиль Отправить личное сообщение для RaVeN-Nikma Посетить домашнюю страницу RaVeN-Nikma Найти все сообщения от RaVeN-Nikma
  № 6  
Ответить с цитированием
RaVeN-Nikma

Регистрация: Jan 2003
Адрес: Latvia, Riga
Сообщений: 161
Гений! спасибо

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

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

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


 


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


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