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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.03.2015, 20:41
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 11  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Что он умеет нового по сравнению с TransportEvent?
Он содержит собственные константы, которые присущи только человеку. Вот что нового.
А расширяет TransportEvent для того, чтобы унаследовать от него свойство dog
Даже если бы он вообще ничего не умел нового и констант не содержал, он все равно должен был бы быть, потому что Man должен посылать ManEvent, а не какой-то там TransportEvent.

Вообще, исходя из вашей логики, не надо создавать вообще никаких лишних классов. Можно весь код писать в одном полотенце Main и не париться, аккуратно раскладывая все по полочкам. Программе пофиг аккуратно там все написано или названия классов и свойств вообще обфусцированы. Все это делается исключительно для удобства чтения программистом.

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

Регистрация: Dec 2014
Сообщений: 312
Цитата:
Цитата:
Что он умеет нового по сравнению с TransportEvent?
Он содержит собственные константы, которые присущи только человеку. Вот что нового.
Это к наследованию не имеет отношения.

Цитата:
Вообще, исходя из вашей логики, не надо создавать вообще никаких лишних классов. Можно весь код писать в одном полотенце Main и не париться, аккуратно раскладывая все по полочкам.
А по вашей логике давайте будем интерфейсы плодить по каждому поводу для читабельности, пусть вместо DisplayObject в функцию приходит например IHaveXY.

Старый 11.03.2015, 21:15
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 13  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Что ж, удачи тогда с изобретением новых концепций)

Старый 11.03.2015, 21:32
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 14  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
Сообщение от callme Посмотреть сообщение
Я хочу узнать тип параметра функции listener.

Код AS3:
function listener(*что сюда прийти должно*):void
{
 
}
TransportEvent приходит и смотрите его type в зависимости от типа можно понять что вы запихнули в cargo

Код AS3:
dispatchEvent( new TransportEvent(dog, ManEvent.I_BOUGHT_DOG) );
dispatchEvent( new TransportEvent(cat, ManEvent.I_FOUND_CAT) );
dispatchEvent( new TransportEvent(iam, ManEvent.I_DONT_KNOW_EVENT_S_LOGIC) );
 
function listener(event:TransportEvent):void
{
    switch(event.type)
    {
        case ManEvent.I_BOUGHT_DOG:
            event.cargo.createNoise();
        break;
        case ManEvent.I_FOUND_CAT:
            event.cargo.makeMyauMyau();
        break;
        case ManEvent.I_DONT_KNOW_EVENT_S_LOGIC:
            event.cargo.openAdobeHelp();
        break; 
    }
 
}
Добавлено через 1 минуту
Ну или разные слушатели для разных типов событий.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 11.03.2015, 21:41
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 15  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
он все равно должен был бы быть, потому что Man должен посылать ManEvent, а не какой-то там TransportEvent.
Не вижу ничего зазорного в том, что люди отправляют грузовики.
Цитата:
пусть вместо DisplayObject в функцию приходит например IHaveXY
Вот тут Вы вообще не туда наступили. Не приписывайте Кейси глупости, основанные на неведении. Это не его мысль, а Ваша.
Проблема вобщем в том, что addEventListener принимает подозрительную строку а не тип События. И этого нам не исправить, увы (иногда не увы а ура, но здесь кажется увы).
Вцелом я вообще не вижу никакой проблемы, кроме "мы ожидаем", потому что "мы" же и использовали константу из другого класса. Ну так не ожидайте. Во всех случаях, когда мы используем обычный Event со своим строковым типом, мы имеем ровно эту проблему — подписываемся на какую-то левую строку, а получаем в хэндлер стандартный Event. И все довольны.
Либо напишите пресловутый ManEvent extends TransportEvent, как советует Кейси. Только наверное нет смысла добавлять к "грузу" еще и "собаку")))))
__________________
Reality.getBounds(this);

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

Регистрация: Dec 2014
Сообщений: 312
Цитата:
Не приписывайте Кейси глупости, основанные на неведении. Это не его мысль, а Ваша.

caseyryan приписал мне:
Код AS3:
Вообще, исходя из вашей логики, не надо создавать вообще никаких лишних классов. Можно весь код писать в одном полотенце Main и не париться

После чего я приписал ему интерфейсы.

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

Регистрация: Apr 2009
Сообщений: 409
может вообще не стоит использовать классы событий, если нет четкого понимания как и зачем это делать)
передавайте через общую шину событие buyPet, единсвтенное можете расширить Event до datEvent, и уже в data пихаете все что нужно. Мне кажется проблема в первую очередь в архитектуре, но однозначно сказать не могу по этому отрывку кода, но слишком все усложнено и запутано.

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

Регистрация: Dec 2014
Сообщений: 312
Цитата:
может вообще не стоит использовать классы событий, если нет четкого понимания как и зачем это делать)
Укажите где я не понимаю как работают события

Цитата:
единсвтенное можете расширить Event до datEvent, и уже в data пихаете все что нужно
Вы описали мой TransportEvent

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

Регистрация: Apr 2009
Сообщений: 409
Дело не в принципе работе событий, а понимании целей их типизации. Вы сами видите что получается сложно и запутанно - это сразу должно настораживать. У transportEvent та же проблема, семантически не отражает своей сути (если это просто dataEvent) . Если пользователь купил собаку, то в системе должно быть сгенерировано что-то типа addPet, это логично что где-то понадобится обрабатывать целый класс событий, а не отдельно рождение кошек, собак, поросят.
Но не видя игры целиком - это опять же мое предположение

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
faraday, вся эта тема, и предыдущая его тема тоже, попахивает каким-то троллингом (кого-то он мне напоминает, из уже неоднократно забаненных на форуме). Чувак либо вообще нифига не понимает и не хочет понимать, либо специально делает вид, что не понимает. Ему уже и так все досконально разжевали что, как и зачем. В итоге вся тема стоит на том же месте, с которого началась.

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

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

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


 


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


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