2009-04-27 9 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とvoilaに渡してください!

+1

ありがとう...私が新しいものとして私が簡単な例を得たなら、もっと役に立ちます! – kp11

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); 
    } 

} 

のようなクラスを使用することができます実行します。

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

コンストラクタのtypo:dateはデータでなければなりません:public function YourEvent(type:String、date:Object ... – David

5

あなたが使用することができますによってDataEvent:

例:

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

データの例ではなく、DataEventのパラメータを示しました。

こちらがお役に立てば幸いです。

よろしくお願いします。

関連する問題