2009-04-27 36 views
6

我正在創建一個庫。這裏是一個例子想用自定義調度事件發送參數

[Event (name="eventAction", type="something")] 
      public function create_new_customer(phone_number:String):void 
    { 
     -------------; 
        ----; 
        ------------; 
      rpc.addEventListener(Event.COMPLETE, onCreate_returns); 
    } 

    private function onCreate_returns(evt:Event):void 
    { 
     var ob:Object = evt.target.getResponse(); 
     dispatchEvent(new something("eventAction")); 
    } 

我有一個應用程序端的事件監聽器。所以當我手動調度事件時,我希望 「ob」作爲參數發送。怎麼做?

回答

0

讓您的自定義事件攜帶此ob對象。將它傳遞給自定義事件的ctor和瞧!

+1

謝謝...如果我有一個簡單的例子,我會更有幫助,因爲我是新手! – kp11 2009-04-27 07:36:07

20

您需要創建一個具有額外屬性的自定義事件類來傳遞數據。你的情況,你可以使用像

public class YourEvent extends Event 
{ 
    public static const SOMETHING_HAPPENED: String = "somethingHappend"; 

    public var data: Object; 

    public function YourEvent(type:String, data: Object, bubbles:Boolean=false, cancelable:Boolean=false) 
    { 
     super(type, bubbles, cancelable); 

     this.data = data; 
    } 

    override public function clone():Event 
    { 
     return new YourEvent (type, data, bubbles, cancelable); 
    } 

} 

一類,然後當溜溜派遣你做:

dispatchEvent(new YourEvent(YourEvent.SOMETHING_HAPPENED, ob)); 
+0

構造函數中的錯字:date應該是data:public function YourEvent(type:String,date:Object ... – David 2010-08-25 13:32:14

5

在AS3中,你可以使用DataEvent:

例如:

dispatchEvent(新DataEvent(type:String [,bubbles:Boolean = false,cancelable:Boolean = false,data:String]);

而不是示例數據,我顯示了DataEvent所需的參數。

我希望這會有所幫助。

最好的問候,RA。

相關問題