Как далеко может зайти одно событие и как мне его прослушать? - PullRequest
0 голосов
/ 30 марта 2011

У меня есть код в компоненте flex, который я хочу прослушивать для события, источником события является пользовательский класс, который выполняется другим классом, который выполняется другим классом и т. Д. И т. Д. У меня сложилось впечатление, чтособытие будет проходить по всему приложению, поэтому я надеялся, что если бы я отправил пользовательское событие в классе следующим образом ...

    private function finishEvent():void {
        var evt:EventDispatcher = new EventDispatcher;
        var finished:Event = new Event("finishedInterpret");
        evt.dispatchEvent(finished);
    }

, тогда я мог бы просто захватить его в своем компоненте следующим образом:

public function interpret(data:Array):void {
    addEventListener("finishedInterpret", applyInferences);
    db.executeBatch();
}

событие запускается в основном, когда executeBatch завершается, и вызывается finishEvent, но я слушатель ничего не получаю.Я попытался установить его в db.addEventListener, но теперь это имело эффект.

1 Ответ

1 голос
/ 30 марта 2011

То, как события должны происходить, заключается в том, что объект отправляет события, а потребители этих событий прослушивают события от этого объекта . Если у вас нет диспетчера глобальных событий (не типично), диспетчеризация событий по всему приложению не производится.

Я считаю, что это лучший шаблон для использования: дочерние компоненты отправляют события, а владелец этих детей слушает их события. Например:

child.addEventListener("finishedInterpret", applyInferences);

Ваш код прослушивает события от самого себя .

...