|
|
|||||
Переброска события
Есть персонаж, которому нужно получать список имеющихся у него вещей с сервера. Его класс наследуется от класса для обмена с сервером, в котором лежит реализация получения данных
public class netConnected extends eventDispatcher { public static const LOADED:String = "loaded"; public function load():void { addEventListener(Event.Complete, onLoadComplete); // отправка запроса на сервер } private function onLoadComplete(e:Event):void { dispatchEvent(new Event(netConnected.LOADED)); } } public class pers extends netConnected { public static const INV_LOADED:String = "inventoryLoaded"; public function loadInventory():void { addEventListener(netConnected.LOADED, onLoadComplete); ... load(); } private function onLoadComplete(e:Event):void { dispatchEvent(new Event(pers.INV_LOADED)); } } import xxx.xxx.pers ... currentPers = new pers(); currentPers.addEventListener(pers.INV_LOADED, xxx); currentPers.loadInventory(); Или же правильно делать как-то так: import xxx.xxx.pers import xxx.xxx.netConnected ... currentPers = new pers(); currentPers.addEventListener(netConnected.LOADED, xxx); currentPers.loadInventory(); Вопрос - как правильно? Жонглировать передачей сообщений, чтобы было визуально понятно, от кого оно приходит или же не делать этого жонглирования, но тогда не очень понятен будет код.
__________________
interplanety |
|
|||||
Регистрация: Dec 2014
Сообщений: 312
|
Я вопрос не понял. Сообщение приходит от currentPers. Это видно. Ты же на сообщения от него подписываешься.
|
|
|||||
2 callme
сообщение приходит от currentPers это да. Просто вопрос в дискрипторе сообщения. Логично, что от персонажа при получении данных по инвентарю нужно подписаться на сообщение типа pers.INVENTORY_LOADED, а не на абстрактное netConnected.LOADED. Т.е. разница между: и Первое выглядит логичнее. Второе не требует перекидывания сообщений из одного в другое.
__________________
interplanety |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Если подписыватьcя от перса, то лучше имхо, чтобы он был target, а не currentTarget. Если смущает создание еще одного события, то можно открыть доступ к лоадеру и подписываться непосредственно от него, по типу pers.dataLoader.addEventListener(...).
Меня несколько смущает сам пример, но тема не об этом |
|
|||||
Регистрация: Dec 2014
Сообщений: 312
|
Думаю, что собака должна посылать сообщение, что она родила щенят, вместо сообщения о том, что прошло N месяцев.
|
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
А не, там же у него наследование... Последний раз редактировалось udaaff; 26.08.2015 в 19:11. |
|
|||||
2 udaaff
Цитата:
все же более правилен, я правильно понял? А чем смущает пример, может мне вообще все надо поменять в корне ? 2 callme Т.е. вы тоже считаете, что первый вариант лучше второго?
__________________
interplanety |
|
|||||
Регистрация: Dec 2014
Сообщений: 312
|
Смущает то, что перс грузит инвентарь, хотя самому персу дела до инвентаря нет настолько, что он сразу прокидывает сообщения наверх?
Цитата:
|
|
|||||
Да, именно в этом был вопрос.
__________________
interplanety |
|
|||||
Регистрация: Dec 2014
Сообщений: 312
|
Да, я за первый вариант, но после сообщений udaaff не уверен, что правильно понимаю о чем идет разговор
Добавлено через 1 минуту Ребят, повторю еще раз, у меня щенки использованы не в качестве детей ) |
Часовой пояс GMT +4, время: 15:57. |
|
« Предыдущая тема | Следующая тема » |
|
|