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

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

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

Регистрация: Apr 2009
Сообщений: 21
По умолчанию Один слушатель событий на все объекты или разные внутри класса?

Собственно, вопрос производительности/размера файла:

Есть много экземпляров Класса MainClass. К каждому надо придернуть одинаковое событие.
Как лучше? Так:

Код AS3:
obj1.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
...
obj9.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
 
function mouseReleased(event:MouseEvent):void {
 trace(event.target);
}
Или так (внутри класса):
Код AS3:
class MainClass extends Sprite{
...
public function MainClass(...):void{
...
this.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
}
 
private function mouseReleased(event:MouseEvent):void {
 trace(this);
}
}
Cпасибо

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Лучше все экземпляры поместить в контейнер и создать один слушатель на контейнер с одним обработчиком событий.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

Регистрация: Apr 2009
Сообщений: 21
не, как бы событие не совсем одинаковое. надо определять, какой именно из объектов был задет.
проще говоря, в обработчике должно стоять event.target.strartDrag() или this.startDrag()
А контейнер никакой прибавки в скорости или размере файла в этом случаи не дает

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
event.target - целевой объект события. Это то, что вам нужно, если хотите определить какой объект был "задет"
Посмотрите для сравнения еще currentTarget
http://help.adobe.com/ru_RU/AS3LCR/F...nts/Event.html
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 13.02.2011, 14:23
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 5  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
вам подсказали верный ход. и причем тут размер файла ...
__________________
мира и гармонии

Старый 14.02.2011, 13:10
Ivanaka вне форума Посмотреть профиль Отправить личное сообщение для Ivanaka Посетить домашнюю страницу Ivanaka Найти все сообщения от Ivanaka
  № 6  
Ответить с цитированием
Ivanaka
 
Аватар для Ivanaka

Регистрация: Apr 2010
Сообщений: 67
Цитата:
Сообщение от TanaTiX Посмотреть сообщение
Лучше все экземпляры поместить в контейнер и создать один слушатель на контейнер с одним обработчиком событий.
Т.е. можно, например, повесить MOUSE_DOWN на группу а потом по currentTarget различать детей?
__________________
Mobile Ritmxoid

Старый 14.02.2011, 13:25
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 7  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
Т.е. можно, например, повесить MOUSE_DOWN на группу а потом по currentTarget различать детей?
Нет.
Если только не [a1,a2,a3...] тогда можно. А если на контейнер, тогда по таргет с мауслчилдрен тру, куррент таргет ссылается на родителя

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Нет, currentTarget вернет того, кому вы написали addEventListener (то есть контейнер группы). А вот target - того, кто получил событие (то есть элемент группы)

PS
Если внутри элемента есть еще вложенные клипы, то есть вероятность того, что target будет ссылаться на один из них(вложенных). Для того, чтобы этого избежать, можно прописать элементам группы mouseChildren = false. Тогда event.target всегда будет ссылаться на элемент группы, а не на его детей.
__________________
...вселенская грусть


Последний раз редактировалось gloomyBrain; 14.02.2011 в 13:29.
Создать новую тему Ответ Часовой пояс GMT +4, время: 12:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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