Показать сообщение отдельно
Старый 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); // ЧТО ТО ТУТ НИЧЕГО НЕ ПОКАЗЫВАЕТ?!! ПОЧЕМУ?
}