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

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

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

Регистрация: Jan 2006
Адрес: Минск
Сообщений: 195
Отправить сообщение для AleXNoD GD с помощью ICQ
По умолчанию dispatchEvent потомкам

Извиняюсь за ламерский вопрос, можно ли из stage передать событие в потомок класса stage? На примере:

Код AS3:
var a = new Sprite();
addChild(a);
a.addEventListener('ululu', function(e){
	trace('GET ULULU');
});
//
trace('POST ULULU');
dispatchEvent(new Event('ululu'));
Не работает. Работают только пузырьки - если отправлять событие в потомке, принимать в родителе. Только нужно сделать наоборот - отправлять в родителе, получать в потомке.
__________________
Русские флеш игры

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Да, пузыри не тонут.
Управляйте потомками через публичные методы.

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

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Код AS3:
a.dispatchEvent
А вообще потомкам приказывают

Старый 10.11.2010, 16:07
AleXNoD GD вне форума Посмотреть профиль Отправить личное сообщение для AleXNoD GD Посетить домашнюю страницу AleXNoD GD Найти все сообщения от AleXNoD GD
  № 4  
Ответить с цитированием
AleXNoD GD
 
Аватар для AleXNoD GD

Регистрация: Jan 2006
Адрес: Минск
Сообщений: 195
Отправить сообщение для AleXNoD GD с помощью ICQ
Может вопрос некорректно поставлен. Нужно отловить событие mouseUp со stage и оповестить об этом n-ное количество вложенных мувиков.
__________________
Русские флеш игры

Старый 10.11.2010, 16:13
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 5  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Вложенное количество мувиклипов сами должны подписаться на mouseUp у stage.

Старый 10.11.2010, 16:17
AleXNoD GD вне форума Посмотреть профиль Отправить личное сообщение для AleXNoD GD Посетить домашнюю страницу AleXNoD GD Найти все сообщения от AleXNoD GD
  № 6  
Ответить с цитированием
AleXNoD GD
 
Аватар для AleXNoD GD

Регистрация: Jan 2006
Адрес: Минск
Сообщений: 195
Отправить сообщение для AleXNoD GD с помощью ICQ
Если они подпишутся на stage, как потом от них избавиться, чтоб не висели addEventListener'ы на stage, при том не делая деструктора? weakReference поможет? Просто если mouseUp можно послать по низам, там отпадают многие проблемы, всё начинает работать весело и дружно, но если это невозможно..
__________________
Русские флеш игры

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Код AS3:
a.dispatchEvent
А вообще потомкам приказывают
Ага, только не dispatch, а прямой вызов функции
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Положите мувики в массив, и обрабатывайте его в stage.MOUSE_UP

Старый 10.11.2010, 17:20
AleXNoD GD вне форума Посмотреть профиль Отправить личное сообщение для AleXNoD GD Посетить домашнюю страницу AleXNoD GD Найти все сообщения от AleXNoD GD
  № 9  
Ответить с цитированием
AleXNoD GD
 
Аватар для AleXNoD GD

Регистрация: Jan 2006
Адрес: Минск
Сообщений: 195
Отправить сообщение для AleXNoD GD с помощью ICQ
Хотя нашел еще способ писать mousedown=true в root, и брать оттуда по необходимости. В этом случае подойдет вариант. Еще паранойя обострилась по поводу garbage collector'a, но это другая тема Благодарю за советы.
__________________
Русские флеш игры

Старый 10.11.2010, 20:08
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 10  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Цитата:
Ага, только не dispatch, а прямой вызов функции
1) Вызов метода
2) Вызов приватного обработчика? А как быть с приоритетами и множественной подпиской на одно событие? Дёргать все методы?
3) Про прямой вызов метода я тоже написал.

Цитата:
Если они подпишутся на stage, как потом от них избавиться, чтоб не висели addEventListener'ы на stage, при том не делая деструктора? weakReference поможет?
Поможет.
Но лучше подписываться по ADDED_TO_STAGE и отписываться от REMOVED_FROM_STAGE. К чему такой страх перед "деструктором"?

Цитата:
Просто если mouseUp можно послать по низам, там отпадают многие проблемы, всё начинает работать весело и дружно, но если это невозможно..
События мыши без реального клика пользователя можно послать только хаком (в 9 версии так было, сейчас может ситуация изменилась). О реализации обычного открытого метода для сообщения о клике отлично сказал samana.

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

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

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


 


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


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