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

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

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

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
Attention Модель Event'ов в ActionScript3

Здравствуйте, кто-нибудь (кроме разработчиков Adobe) до конца понимает всю модель распространения событий в AS3? Все видели эту схему распространения события со сцены до источника и обратно: захват, пузыри и т.д. Ну а если объект не в списке отображения? А если он вообще не DisplayObject? Вобщем ответьте, пожалуйста, мне на следующие вопросы:
1) Поток событий идет только по объектам-родителям источника?
Типа:
Код:
Stage -
   | => parent1
               | => parent2
                           | => targetObject
2) Здесь же: Если рядом с parent1, будет parent1.1, до него ничего не дойдет?
Код:
Stage -
   | => parent1     | = parent1.1
                | => parent2
                           | => targetObject
3) Все дети parent2, кроме targetObject не смогут поймать событие?
4) Дети targetObject не смогут поймать событие?
5) Как вообще посылать событие глубже targetObject?
6) Если targetObject создан, но не добавлен в список отображения или это класс не DisplayObject, то как будет происходить распространение события?
7) Можно диспачить событие в объект?
Код:
someObject.dispatchEvent(new Event(...));
И смысл этого действия, если мы можем обратиться к someObject, то можем и тупо вызвать нужный нам метод?

Вроде пока все... Ответьте, пожалуйста, кто как может

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

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
1) Да.
2) Нет.
3) Внутри себя не смогут.
4) Внутри себя не смогут.
5) Никак. Зачем?
6) Если это не DisplayObject, то событие вообще нельзя послать, а если объект не добавлен в DisplayList, то за пределы самого объекта событие не уйдет.
7) Можно. Смысл может и есть, ведь вызов метода и отправка события - разные вещи. У меня не было необходимости в такой конструкции.

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

Регистрация: Sep 2002
Сообщений: 30,787
1) От targetObject до Stage, а не так, как вы нарисовали (стрелки в другую сторону);
2) Не дойдет, только вверх по родителям (опять же, стрелки в другую сторону должны быть);
3) Не смогут;
4) Не смогут;
5) Вниз?
6) Никак не будет, бабблинг работает исключительно в display list;
7) Вы привели пример отправки события объектом someObject. Если же вам надо вызвать метод — вызовите его.

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

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
> 6) Если это не DisplayObject, то событие вообще нельзя послать...

Т.е., события могуть отправлять и ловить только DisplayObject? О_о

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

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от marat_sa Посмотреть сообщение
> 6) Если это не DisplayObject, то событие вообще нельзя послать...

Т.е., события могуть отправлять и ловить только DisplayObject? О_о
Нет, наследники EventDispatcher.

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

Регистрация: Apr 2007
Сообщений: 143
Отправить сообщение для NePridymal с помощью ICQ
События могут отправлять EventDispatcher-ы , ловить всплывающие события могут только объекты в DisplayList. Если EventDispatcher не в DisplayList-е то и событие, посланое этим объектом смогут услышать только слушатели событий этого объекта.

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

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
А, да точно...

>1) От targetObject до Stage, а не так, как вы нарисовали (стрелки в другую сторону);
http://riapriority.com/blogs/constantiner.php/c16/
Так они ж смотря в какой фазе, стрелочки-то... Или что вы имеете ввиду?

> 7) Вы привели пример отправки события объектом someObject.
Да, перепутал X_X
Тогда так: можно ли по этой схеме:
Код:
someObject.dispatchEvent(new Event(...));
Назначить из другого объекта объект someObject в качестве отправителя события?


Последний раз редактировалось marat_sa; 16.10.2008 в 18:59.
Старый 16.10.2008, 20:55
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от marat_sa Посмотреть сообщение
>1) От targetObject до Stage, а не так, как вы нарисовали (стрелки в другую сторону);
http://riapriority.com/blogs/constantiner.php/c16/
Так они ж смотря в какой фазе, стрелочки-то... Или что вы имеете ввиду?
Фазу пузырька.

Цитата:
Сообщение от marat_sa Посмотреть сообщение
Назначить из другого объекта объект someObject в качестве отправителя события?
А зачем?

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

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

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


 


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


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