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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.10.2013, 17:04
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 11  
Ответить с цитированием
AlexLucas
[+1 05.11.12]
 
Аватар для AlexLucas

Регистрация: Feb 2011
Сообщений: 431
Ну так разные события посылайте - для маны одно, для устойчивости другое, для всего вместе оба сразу.
__________________
Oomph

Старый 16.10.2013, 17:36
elder_Nosferatu вне форума Посмотреть профиль Отправить личное сообщение для elder_Nosferatu Найти все сообщения от elder_Nosferatu
  № 12  
Ответить с цитированием
elder_Nosferatu
 
Аватар для elder_Nosferatu

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
В модели событий ActionScript нет такого понятия, как рассылка по определенным ветвям. Диспетчер просто генерирует событие и его не касается будут ли его слушать или нет. Если кто подписался на событие, то он его и получит. А дальше каждий подписчик должен решать сам, как ему реагировать. У Вас же ситуация с очень неясным событием. Его нужно детализировать, добавить немного конкретики. Тогда каждый подписчик сможет понять, интересно ему это или можно игнорить.
Например, прошла весточка о конце света, которая касается всех людей.
- Истинно верующие при любых раскладах побегут в храмы на молитву. Им плевать на детали.
- Мародерам интересно будет ли это мгновенно или растянется на много дней, месяцев или лет - тогда можна и запастись чем поинтереснее.
- Военным тоже важны причины. А вдруг речь идет всего лишь о Третей мировой, а не библейском апокалипсисе. Тогда у них будет работа...
Если нет никакой конкретики, тогда начинается паника и хаос. Если же событие содержит достаточную инфу, тогда каждый поймет, как ему поступить.
А дальше вариантов 2:
- каждое присшествие описано отдельним событием. Его услышит лишь тот, кому оно адресовано.
- схожие происшествия описаны одним событием, которое в себе содержит более детальную инфу.

Старый 20.10.2013, 15:38
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 13  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
А существует способ временной приостановки событий? Или только отписываться?
И можно как то слушатели поместить в массив, чтобы один обьект подписать в цикле на множество событий?

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
А существует способ временной приостановки событий? Или только отписываться?
Нпаример такой : if(stop) return - в начале метода события.

Добавлено через 1 минуту
Цитата:
И можно как то слушатели поместить в массив, чтобы один обьект подписать в цикле на множество событий?
Можно. Создать ключ-значение словаря. И в цикле пихать addEventListener(dict[value] , value);
__________________
Марк Tween

Старый 20.10.2013, 16:54
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 15  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
in4core Спасибо! А Вы не знаете, что будет накладнее, выкидывать из обработчика или отписывать? А вот за второй ответ отдельно Спасибо! Из - за отвержения мозгом по причине "некрасивости", я бы не догадался. Мне так странно осознавать, что "change" === Event.CHENGE.

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Насчет второго, оно вам в жизни не пригодится скорее всего. Насчет первого, а почему бы самому не провести тесты КОнечно дешевле снять обработчик , чем выкидывать
__________________
Марк Tween

Старый 20.10.2013, 19:35
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 17  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
В самом начале тяжело всем и все стараются расспросить более опытного, обо всё на свете.
И я давно заметил некую тенденцию, которую можно назвать "боязнью дать ответ".
Вот если спросить, какую графику лучше использовать, то не кто не скажет, что это Ваше дело,
каждый выбирает свой подход, а говорят все плюсы и минусы. Если спросить, что более сложное ( при чем сами опытные говорят о недостатке умных вопросов и о спаде уровня программистов, которые не хотят шевелить мозгами, из-за фраймворков ), то почти всегда один ответ - всё зависит от случая или это дело Вашего вкуса.
Вот если откинуть в сторону вкусы и случаи, подскажите, как лучше организовывать процесс передачи событий? Процесс, когда класс А, слушает класс В, по ссылки на него, а в классе В созданы другие классы, безуспешно пытающиеся передать события в класс А?
Лично я знаю только два способа, "глобальный диспетчер" или просто в классе В создать обработчик (события:*):void и в этом обработчике прерывать события и рассылать текущий евант. Но мне хочется узнать, есть что то ещё и что Вы используете и считаете наиболее лучшим?

Добавлено через 1 минуту
in4core Спасибо Вам большое!

Добавлено через 30 минут
Возможно стоит обратить внимание на какой то шаблон?

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Вообщето есть баблинг. Знакомое слово? Если нет, прочитайте. Это третий параметр евентЛистенера. С помощью бабла можно передать событие на верх по цепочке.
В вашем примере как раз все очень просто -
Код AS3:
class A
addEventLisnter(ClassB.CONST, f1); // слушаем класс Б, это понятно.
addEventListener(ClassC.CONST , f2); // ага тут и встал вопрос, а как же. 
А вот и ответ
classC.dispacthEvent(new ClassCEVent(ClassC.CONST,true))  вот это самое тру, передаст событие по цепочке вверх, и тот класс который подписан на него схватит это событие. Пусть хоть 500 вложенность.
__________________
Марк Tween

Старый 20.10.2013, 22:04
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 19  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
Вообщето есть баблинг
Про баблинг я знаю, но он вроде только для ДО или я ошибаюсь?
я пробовал несколько раз и у меня только с ДО получалось.

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Для DO конечно. а в других случаях вложенность в 500 классов и не бывает, если что.
__________________
Марк Tween

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

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

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


 


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


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