Я бы начал с попытки установить для параметра bubbles
значение true.Итак, отправьте событие следующим образом:
dispatchEvent(new Event(Event.CHANGE, true));
Это избавит вас от необходимости явно прослушивать событие в диспетчере и позволит захватывать событие в фазе пузырьков.
РЕДАКТИРОВАТЬ
Это НЕ окончательный ответ, все ответы ... и вы, вероятно, захотите удалить пузырьки = True, как только вызаставить его работать правильно, если вы не хотите явно отменить событие после его захвата.Причина в том, что событие Event.CHANGE является довольно распространенным, и всплытие этого события в цепочке списка отображения может быть грязным, особенно если есть другие обработчики, прослушивающие события CHANGE.Но он WILL сообщит вам, правильно ли вы подключаете слушателя.
END EDIT
Другая вещь, которую вы, возможно, захотите попробовать (так как этоне ясно из того, как у вас написан код выше), это добавить слушатель события сразу после создания экземпляра.Кроме того, убедитесь, что ваш _biosModel является свойством экземпляра, не определенным в рамках некоторой функции, которая его генерирует.
package ... {
import flash.events.Event;
public class Something extends SomethingElse {
var _biosModel:IMultiDataModel;
public function Something() {
this._biosModel = new BiosPanelModel();
this._biosModel.addEventListener(Event.CHANGE, __eventHandler);
}
private function __eventHandler($evt:Event) {
trace("SUCCESS");
}
}
}