如何使用 Action Script 添加 Mate Listeners

发布于 2024-10-03 12:53:24 字数 724 浏览 3 评论 0原文

在我的一个表单中,我使用了以下代码来添加 Mate Listeners

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

我将此表单显示为弹出窗口。发生的情况是,onUpdateResults 方法第一次按预期只执行一次。然后我关闭弹出窗口并重新打开它。这次 onUpdateResults 方法调用了两次,然后接下来调用了 4 次,依此类推...

经过大量的谷歌搜索,我发现 Mate Listeners 仍然处于活动状态,即使我们删除/关闭了弹出窗口。我尝试了弱引用,使用 PopupManager.RemovePopup 关闭弹出窗口等。什么都没起作用。

然后我想到使用动作脚本手动注册和取消注册配合侦听器。所以,我尝试了以下代码

var _listener:Listener= new Listener();

_listener.addEventListener(DBEvent.Update_Result,onUpdateResults);

来取消注册...

_listener.removeEventListener(DBEvent.Update_Result,onUpdateResults);

但这也不起作用。

请有人帮我解决这个问题。

in one of my forms, I have used the following code for adding Mate Listeners

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

I am displaying this form as a popup. What happening is, for the first time, onUpdateResults method executed only once as expected. Then i close the popup and reopened it. This time onUpdateResults method called twice, then next 4time and so on...

After so much of googling, i found that Mate Listeners are still active, even though we remove/close the popup. I tried weak references, close the popup using PopupManager.RemovePopup and so on. Nothing worked.

Then i thought of registering and unregistering the mate listeners manually using action script. So, i have tried the following code

var _listener:Listener= new Listener();

_listener.addEventListener(DBEvent.Update_Result,onUpdateResults);

to unregister...

_listener.removeEventListener(DBEvent.Update_Result,onUpdateResults);

But this is also not working.

Please somebody help me fix this issue.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你曾走过我的故事 2024-10-10 12:53:24

试试这个。

在主应用程序中创建运行时弹出窗口:

PopUpManager.createPopUp(this, MyPopUp, true);

MyPopUp - mx:TitleWindow from MyPopUp.mxml
在 MyPopUp.mxml 的 OnInit 中添加任何侦听器:

_listener.addEventListener(DBEvent.Update_Result, onUpdateResults);

单击任何按钮(按钮的单击事件或任何事件)时关闭弹出窗口:

PopUpManager.removePopUp(this);

Try this.

Create runtime popup windows in main application:

PopUpManager.createPopUp(this, MyPopUp, true);

MyPopUp - mx:TitleWindow from MyPopUp.mxml
Add any listeners in OnInit in MyPopUp.mxml:

_listener.addEventListener(DBEvent.Update_Result, onUpdateResults);

Close popup when you click any button (button's click event or any):

PopUpManager.removePopUp(this);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文