2009-04-27 10 views
6

Tworzę bibliotekę. Oto przykład:Chcesz wysłać parametry z niestandardowym zdarzeniem wysyłki

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

Mam słuchacza tego wydarzenia po stronie aplikacji. Tak więc, gdy ręcznie wysyłam zdarzenie, chcę, aby jako parametr wysłano "ob" . Jak to zrobić?

Odpowiedz

0

Wykonaj niestandardowe zdarzenie z tym obiektem ob. Przekaż go do ctor zdarzenia i voila!

+1

dzięki ... byłoby bardziej pomocne, gdybym otrzymał prosty przykład, ponieważ jestem nowy jak! – kp11

20

Należy utworzyć niestandardową klasę zdarzeń z dodatkowymi właściwościami, aby przekazywać z nią dane. W twoim przypadku można użyć klasy jak

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

} 

wtedy kiedy yo wysyłką zrobić:

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

Pisemna w konstruktorze: data powinna być danymi: public function YourEvent (type: String, date: Object ... – David

5

w AS3 można użyć DataEvent:

ex:

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

Zamiast przykładowych danych pokazałem parametry, które pobiera DataEvent.

Mam nadzieję, że to pomoże.

Pozdrawiamy, RA.

Powiązane problemy