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

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

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

Регистрация: Jan 2012
Адрес: (0;0;0) относительно меня
Сообщений: 82
Отправить сообщение для am_devcorp с помощью Skype™
По умолчанию Спрайты и события, от них поступающие

Есть класс А . у него есть потомок - класс B (оба наследуют Sprite). Оба слушают событие MouseEvent.CLICK. всё выглядит как будто один квадратик внутри другого. Так вот. Когда я кликаю по внешнему квадрату - событие ловит класс А, когда кликаю на внутренний - ловят оба.
Вопрос: как сделать так во чтоб втором случае класс А если и реагировал на событие, то мог отличить его от первого случая; в идеале - вообще не реагировал?

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
function onClick(e:Event) {
stopEventPropagation()
}
__________________
Марк Tween

Старый 09.01.2012, 17:22
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 3  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
проверять свойство target объекта события, если оно указывает на classA значит это событие щелчка по объекту "classA", если нет значит это перехват события щелчка по объекту classB.

Пример такой:
Код AS3:
classA.addEventListener(MouseEvent.CLICK, clickClassAHandler);
 
...
 
 
private function clickClassAHandler(e:MouseEvent):void 
{
    if ( e.target === classB ) return;
 
    ///some code for classA
}


Последний раз редактировалось fish_r; 09.01.2012 в 18:11.
Старый 09.01.2012, 17:26
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 4  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Скорее тут target нужен, currentTarget будет показывать на ClassA всегда.

Старый 09.01.2012, 18:12
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 5  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Цитата:
Сообщение от expl Посмотреть сообщение
Скорее тут target нужен, currentTarget будет показывать на ClassA всегда.
совершенно верно. вечно я их путаю (

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

Регистрация: Jan 2012
Адрес: (0;0;0) относительно меня
Сообщений: 82
Отправить сообщение для am_devcorp с помощью Skype™
Cпасибо, работает.

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

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

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


 


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


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