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

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

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
1. Спрайт тоже EventDispatcher.
2. ....
3. Ну так вешайте.
3а. Что за таинственный "объект, работающий в нем".
__________________
Reality.getBounds(this);

Старый 19.02.2011, 03:55
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 12  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
можно.
я вообще имена событий генерил. типа
Код AS3:
dispatchEvent(new Event("value of" +data+" is changed");
вру конечно, но это тоже валидно. главное как подписаться.
для подписки на такое событие я бы добалял отдельный метод:
Код AS3:
addChangeListener(data:String...){
addEventListener("value of" +data+" is changed",....)
}
__________________
Отряд Котовскага

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
samana !!! разницу видите ? extends EventDispatcher и extends Sprite , как в вашем примере. А она есть
Все samana верно говорит.
in4core, вы видели иерархию наследования?
Цитата:
Sprite - DisplayObjectContainer - InteractiveObject - DisplayObject - EventDispatcher - Object
Код AS3:
private var /*const*/ CUSTOM:String = "custom";
...
dispatchEvent(new Event(CUSTOM));
// или так, хотя красивее через константу
dispatchEvent(new Event("custom"));
...
addEventListener(CUSTOM /*"custom"*/, myFoo)
__________________
тут я


Последний раз редактировалось КорДум; 19.02.2011 в 10:04.
Старый 19.02.2011, 10:29
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 14  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Цитата:
Мне нужно именно на eventDispatcher вешать событие, тоесть на инстанс класса, а не объекта работающего в нем.
Дам доллар если Вы повесите слушатель события не на IEventDispatcher.

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Я, честно говоря, необходимости в расширении классов Even и EventDispatcher как-то не вижу вообще. Вернее, на полном серьезе увлекался этим, пока тут на форуме кто-то не спросил "а зачем?".

Фактически, диспатчится строка, обернутая в Event, ее можно формировать как угодно, главное потом знать, как подписать слушателя.

Код AS3:
package 
{
    import flash.display.Sprite;
    import flash.events.Event;
 
    public class Main extends Sprite 
    {
 
 
        public function Main():void 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }
 
        private function init(e:Event = null):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            // entry point
 
            var eventName:String;
 
            eventName = "eventNumber1";
            addEventListener(eventName, onEventIncomig);
            dispatchEvent(new Event(eventName));
 
            eventName = "eventNumber2";
            addEventListener(eventName, onEventIncomig);
            dispatchEvent(new Event(eventName));
        }
 
        private function onEventIncomig(e:Event) : void
        {
            trace("onEventIncomig",e);
 
        }
 
    }
 
}
трейс:

Код:
onEventIncomig [Event type="eventNumber1" bubbles=false cancelable=false eventPhase=2]
onEventIncomig [Event type="eventNumber2" bubbles=false cancelable=false eventPhase=2]
Добавлено через 7 минут
ЗЫ. Хотя мне лично все-таки больше нравится канонический стиль
addEventListener(ClassName.CONSTANT_NAME,...), а дальше уже получение информации через e.target

Вся эта передача информации внутри имени события - от лукавого

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
инфокор открыл книжку на странице Ивентов? )

тип ивента - строка..как вы ее получите дело, сугубо личное.
константы в классе ивента есть просто логически обособленные названия для типов событий. это раз. второе - тупо исключает (ну или уменьшает как минимум) риск написать что-нибудь не то, что нужно(т.е. если мы напишем неправильно константу - получим ошибку при компиляции, а если не правильно напишем строку в типе - проглотит и не подавится и ищи потом что где не так).
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
Дам доллар если Вы повесите слушатель события не на IEventDispatcher
Код AS3:
public class NotEventDispatcher { // extends Object
 
private const _dispatcher:EventDispatcher = new EventDispatcher(this);
 
...
 
 
public function addEventListener(....) {
_dispatcher.addEventListener(...)
}
}
Высылай авиапочтой =)
__________________
...вселенская грусть

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
и как, Event.target покажет на твой Object ?)
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
да, именно на него и покажет
__________________
...вселенская грусть

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
ну, вроде new EventDispatcher(this);
уже даст ошибку с конвертацией Object в IEventDispatcher
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

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

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


 


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


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