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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.02.2014, 01:21
Digital вне форума Посмотреть профиль Отправить личное сообщение для Digital Найти все сообщения от Digital
  № 1  
Ответить с цитированием
Digital

Регистрация: Apr 2012
Сообщений: 213
По умолчанию Двойное обращение к функции

Есть некая функция
private function funcname(e:MouseEvent)
Обращаюсь я к ней из одного места по событию мыши, а из другого по нажатию клавиши клавиатуры. Что нужно писать в скобках, что б и то и то работало? Можно там перечисление ивентов делать?

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

Регистрация: Mar 2013
Сообщений: 1,864
Код AS3:
private function event_Handler(event:*):void 
{
	trace(event.type);
}
Код AS3:
private function event_Handler(event:Object):void 
{
	trace(event.type);
}
Но я бы выслушал мнения, на сколько это правильно.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Код AS3:
private function event_Handler(event:Event):void 
{
	trace(event.type);
}
__________________
Reality.getBounds(this);

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Wolsh , а я вот поспорю с тобой, что этот вариант правильный самый ( если конечно ты на пост Акро отвечал, а на пост ТС , если на ТС - то вопросов нет ).

Akopalipsis - правильно так, как требует ситуация. Если идет принятие кастомных событий, то возможно лучшим будет event:* . Да бы предусмотреть ситуации e.params и т.п. иначе не скомпилиться. Вариант с объектом в данном случае неверен, так как большинство понимают под Object {} и ты скорее всего сам потом запутаешься.

Самым благородным решением будет BaseCustomEvent - но это уже через чур замудрежка.
Что то типа
Код AS3:
TestEvent extends BaseCustomEvent extends Event
function ( e: BaseCustomEvent )  { if(e is TestEvent ) do it }
__________________
Марк Tween

Старый 19.02.2014, 05:35
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 5  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
рас: В случае с конкретным ивентом клавиатуры и конкретным ивентом мыши - абстрактный кастом-ивент благородным решением не будет.
два: звездочка и обжект по сути своей не отличаются. Юзай что нравится. Но в коде если звездочка то наверное кому-то понятнее что туда разные данные входить могут. Мне пофиг.
три: пример с кастомивентом, а затем проверкой типа - вполне реализуется и со звездочкой и с обжектом. Если идет проверка типа то нафига нам кастом-ивент?
__________________
Кто к нам с чем для чего - тот у нас того от того.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Что-то я не понял. Так мы принимаем события или все подряд?
in4core, мне искренне жаль, что для тебя поставить звездочку равносильно "предусмотреть ситуации", и что тебе никак "иначе не скомпилиться".
__________________
Reality.getBounds(this);

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

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
Так мы принимаем события или все подряд?
Вот эта фраза уже изменила многое в моем мышлении.

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

Регистрация: Jul 2009
Сообщений: 149
А какая необходимость пихать в один обработчик то что "подул ветер" и то что "хрюкнул кабан".
Почему бы не
Код AS3:
private function mouseEventHandler(e:MouseEvent):void{
	funcName();
}
 
private function keyboardEventHandler(e:KeyboardEvent):void{
	funcName();
}

Да, строчек прибавится, но повысится человекочитаемость.
Я не прав?

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Я не прав?
Это в идеале. Но иногда читаемость и понимаемость оказываются разными вещами. Иногда важнее показать, что это одно и то же. Но в идеале да, S.O.L.I.D.
__________________
Reality.getBounds(this);

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

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Наверное, реагировать надо будет не на все кнопки скопом, а на какую-то одну (или не реагировать на какую-нибудь – например, по esc вызывается меню игры и не должен происходить прыжок). Это явно не должно происходить там же, куда может заглянуть обработка мыши.
Я за ObOs'a.

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

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

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


 


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


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