2012-01-06 61 views
8

一個很好的簡單的開始新的一天!dispatchEvent靜態類 - AS3

我不能在我的static class中使用dispatchEvent,我想知道是否有人知道我可以如何實現類似的功能,或者如果可以從我的靜態類中調用dispatchEvent?

我基本上想在我的靜態類中的功能完成時通知我的動作腳本代碼。

感謝,

回答

12

在閱讀答案並瞭解我能做什麼之後,我實現了以下(認爲如果他們能看到一些示例代碼,它將在未來幫助用戶)。

private static var dispatcher:EventDispatcher = new EventDispatcher(); 

public static function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void { 
    dispatcher.addEventListener(type, listener, useCapture, priority, useWeakReference); 
} 

public static function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void { 
    dispatcher.removeEventListener(type, listener, useCapture); 
} 

public static function dispatchEvent(event:Event):Boolean { 
    return dispatcher.dispatchEvent(event); 
} 

public static function hasEventListener(type:String):Boolean { 
    return dispatcher.hasEventListener(type); 
} 
1

你可以使用一個私有變量_dispatcher:此事件,並實現IEventDispatcher接口。

然後,您可以借道調度的事件。讓我知道這是否足以讓你走。

2

一個直接的解決方法,我可以看到的是有一個靜態變量是你的EventDispatcher - 當你得到addEventListener叫,你把它連接到你的EventDispatcher - 每當你想火/分派事件,你告訴所以你EventDispatcher

4

靜態類(具有靜態屬性和方法的類)不能繼承普通的實例級方法,也不能實現具有靜態方法的接口。所以你的public static function dispatchEvent不能參加EventDispatcherIEventDispatcher

您可以創建相同的靜態方法,如IEventDispatcher然後創建的IEventDispatcher靜態實例來處理事件,但您的靜態類本身不能是EventDispatcher,但只能看類似。

4

而不是從靜態類使用靜態方法。你可以像這樣使用。

import flash.events.EventDispatcher; 
    import flash.events.Event; 

    public class StaticClass extends EventDispatcher { 
     public static var STATICCLASS:StaticClass = new StaticClass(); 
     public function StaticClass() { 
      // constructor code 

     } 

     public function dispatchEventFromStaticClass():void 
     { 
      dispatchEvent(new Event("Event_Dispatched")); 
     } 

    } 

你可以聽別的地方像這樣

StaticClass.STATICCLASS.addEventListener("Event_Dispatched", onHandler); 
StaticClass.STATICCLASS.dispatchEventFromStaticClass() 
function onHandler(e:Event):void 
{ 
    trace("Hey !!") 
} 
+0

天哪,你不知道多少,這幫助我!日Thnx! – theseal53 2014-09-23 18:02:20

+0

歡迎您:) – 2014-11-23 04:25:28