Как добавить Mate Listeners с помощью Action Script - PullRequest
0 голосов
/ 23 ноября 2010

в одной из моих форм я использовал следующий код для добавления Mate Listeners

<mate:Listener type="{DBEvent.Update_Result}" receive="{onUpdateResults(event)}"/>

Я отображаю эту форму как всплывающее окно.В первый раз метод onUpdateResults выполняется только один раз, как и ожидалось.Затем я закрываю всплывающее окно и снова открываю его.На этот раз метод onUpdateResults вызывался дважды, затем в следующий раз и так далее ...

После стольких поисков я обнаружил, что слушатели Mate все еще активны, даже если мы удаляем / закрываем всплывающее окно.Я пробовал слабые ссылки, закрывал всплывающее окно, используя PopupManager.RemovePopup и так далее.Ничего не сработало.

Тогда я подумал о том, чтобы зарегистрировать и отменить регистрацию слушателей помощника вручную, используя скрипт действия.Итак, я попытался следующий код

var _listener:Listener= new Listener();

_listener.addEventListener(DBEvent.Update_Result,onUpdateResults);

, чтобы отменить регистрацию ...

_listener.removeEventListener(DBEvent.Update_Result,onUpdateResults);

Но это также не работает.

Пожалуйста, кто-нибудь, помогите мне исправить этовыпуск.

1 Ответ

0 голосов
/ 26 ноября 2010

Попробуйте это.

Создание всплывающих окон времени выполнения в основном приложении:

PopUpManager.createPopUp(this, MyPopUp, true);

MyPopUp - mx: TitleWindow из MyPopUp.mxml Добавьте любых слушателей в OnInit в MyPopUp.mxml:

_listener.addEventListener(DBEvent.Update_Result, onUpdateResults);

Закрыть всплывающее окно при нажатии любой кнопки (событие нажатия кнопки или любая):

PopUpManager.removePopUp(this);
...