Хотите отправить параметры с пользовательским событием отправки - PullRequest
6 голосов
/ 27 апреля 2009

Я создаю библиотеку. Вот пример

[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» для отправки в качестве параметра. Как это сделать?

Ответы [ 3 ]

20 голосов
/ 27 апреля 2009

Вам необходимо создать собственный класс событий с дополнительными свойствами для передачи данных вместе с ним. В вашем случае вы могли бы использовать класс как

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));
5 голосов
/ 30 июня 2009

В AS3 вы можете использовать DataEvent:

например:

dispatchEvent (new DataEvent (тип: String [, bubbles: Boolean = false, отменяемый: Boolean = false, data: String]);

Вместо примеров данных я показал параметры, которые принимает DataEvent.

Надеюсь, это поможет.

С уважением, РА.

0 голосов
/ 27 апреля 2009

Сделайте ваше пользовательское событие несущим этот ob объект. Передайте его в ctor пользовательского события и вуаля!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...