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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.04.2009, 16:58
ERrorMAKros вне форума Посмотреть профиль Отправить личное сообщение для ERrorMAKros Посетить домашнюю страницу ERrorMAKros Найти все сообщения от ERrorMAKros
  № 1  
Ответить с цитированием
ERrorMAKros
 
Аватар для ERrorMAKros

Регистрация: May 2008
Адрес: Земля.Украина.Одесса
Сообщений: 219
Отправить сообщение для ERrorMAKros с помощью ICQ Отправить сообщение для ERrorMAKros с помощью Skype™
По умолчанию Зарегистрировать свой Event для Class`а

Подскажите пожалуйста примерчиком, как для своего объекта в классе описать event, которым бы можно было в дальнейшем пользоваться через

Код AS3:
var MyObj: MyObject = new MyObject();
MyObj.addEventListener(мое_событие_в_классе_MyObject, function_name);
Как описать функцию события в классе:
Код AS3:
package
{
public class MyObject extends MovieClip
  {
   trace('мой обжект инит');
  }
}


Последний раз редактировалось iNils; 18.04.2009 в 17:31.
Старый 18.04.2009, 17:18
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 2  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

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

Старый 19.04.2009, 14:31
ERrorMAKros вне форума Посмотреть профиль Отправить личное сообщение для ERrorMAKros Посетить домашнюю страницу ERrorMAKros Найти все сообщения от ERrorMAKros
  № 3  
Ответить с цитированием
ERrorMAKros
 
Аватар для ERrorMAKros

Регистрация: May 2008
Адрес: Земля.Украина.Одесса
Сообщений: 219
Отправить сообщение для ERrorMAKros с помощью ICQ Отправить сообщение для ERrorMAKros с помощью Skype™
Вот при разборке dispatchEvent столкнулся с такой историей:
Код AS3:
package {
        import flash.events.Event;
        import flash.display.Sprite;
 
        public class IEventDispatcherExample extends Sprite {
 
                private var mainzx:Number=50;			
 
                public function IEventDispatcherExample() {
                   var decorDispatcher:DecoratedDispatcher = new DecoratedDispatcher();
                       decorDispatcher.addEventListener("doSomething", didSomething);
                       decorDispatcher.dispatchEvent(new Event("doSomething"));
                }
 
                public function didSomething(evt:Event):void
				{
                       mainzx=1112;
					   trace('OK');
                }
 
                public function aaaaaaa():Number
				{
					return mainzx;
				}
        }
}
 
import flash.events.IEventDispatcher;
import flash.events.EventDispatcher;
import flash.events.Event;
 
class DecoratedDispatcher implements IEventDispatcher {       
    private var dispatcher:EventDispatcher;
 
    public function DecoratedDispatcher() {
        dispatcher = new EventDispatcher(this);
    }
 
    public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void{
        dispatcher.addEventListener(type, listener, useCapture, priority);
    }
 
    public function dispatchEvent(evt:Event):Boolean{
        return dispatcher.dispatchEvent(evt);
    }
 
    public function hasEventListener(type:String):Boolean{
        return dispatcher.hasEventListener(type);
    }
 
    public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void{
        dispatcher.removeEventListener(type, listener, useCapture);
    }
 
    public function willTrigger(type:String):Boolean {
        return dispatcher.willTrigger(type);
    }
}
И вот исполняемый код:
Код AS3:
import flash.events.Event;
import flash.display.Sprite;
var main: IEventDispatcherExample = new IEventDispatcherExample();
    main.addEventListener("doSomething",mainaaa);
 
function mainaaa(e:Event):void
{var aaaa=main.aaaaaaa();
   trace(aaaa); // ЧТО ТО ТУТ НИЧЕГО НЕ ПОКАЗЫВАЕТ?!! ПОЧЕМУ?
}

Старый 19.04.2009, 14:57
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Вы событие диспатчите в конструкторе, а подисываетесь на него после того, как вызываете конструктор.
__________________
Hell is the possibility of sanity

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

Регистрация: May 2008
Адрес: Земля.Украина.Одесса
Сообщений: 219
Отправить сообщение для ERrorMAKros с помощью ICQ Отправить сообщение для ERrorMAKros с помощью Skype™
А как правильно? ...что то не уловил логики.

Старый 20.04.2009, 06:11
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ну вот представьте, что происходит, по времени:
  1. начали создавать объект IEventDispatcherExample.
  2. из объекта IEventDispatcherExample раздали всем подписчикам событие (на этот момент подписчиков не было, никто событие не получил).
  3. закончили создавать объект IEventDispatcherExample.
  4. подписались на событие от объекта IEventDispatcherExample, но он его уже давно раздал.
__________________
Hell is the possibility of sanity

Старый 20.04.2009, 06:31
ERrorMAKros вне форума Посмотреть профиль Отправить личное сообщение для ERrorMAKros Посетить домашнюю страницу ERrorMAKros Найти все сообщения от ERrorMAKros
  № 7  
Ответить с цитированием
ERrorMAKros
 
Аватар для ERrorMAKros

Регистрация: May 2008
Адрес: Земля.Украина.Одесса
Сообщений: 219
Отправить сообщение для ERrorMAKros с помощью ICQ Отправить сообщение для ERrorMAKros с помощью Skype™
А должно происходить как? Суть в том, что мне нужно зарегистрировать "свое" событие, при вызове которого я бы мог получить определенные параметры класса, в данном случае содержимое переменной "mainzx".

Старый 20.04.2009, 15:39
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 8  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ну, подумайте, если вы хотите съесть бутерброд, то, наверное, сначала рот откроете, а потом уже туда бутербродом, правильно? А то если сначала бутерброд, а потом рот открыть - то как-то неудобно получится
Смысл подписываться на событие заключается в том, что это самое событие происходит в какое-то неопределенное более позднее время. Поэтому диспатчить событие из конструктора бессмысленно - он все равно всегда вызывается только 1 раз для каждого объекта и вы всегда знаете (можете получить ссылку на этот объект сразу же после его создания - так зачем вам там нужно события диспатчить?
Если ван нужен просто пример - поставьте таймер, и по тику таймера диспачте свое событие.
__________________
Hell is the possibility of sanity

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

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

Старый 21.04.2009, 10:43
olexandr вне форума Посмотреть профиль Отправить личное сообщение для olexandr Посетить домашнюю страницу olexandr Найти все сообщения от olexandr
  № 10  
Ответить с цитированием
olexandr
 
Аватар для olexandr

Регистрация: Aug 2007
Адрес: Ukraine, Kyiv
Сообщений: 643
Отправить сообщение для olexandr с помощью ICQ Отправить сообщение для olexandr с помощью MSN Отправить сообщение для olexandr с помощью Skype™
вот, посмотрите пример. думаю, после него все станет понятно )

p.s. wvxvw, твои ответы, как обычно - супер
Вложения
Тип файла: zip src.zip (1.1 Кб, 65 просмотров)
__________________
сайт, vk

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

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

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


 


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


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