【问题标题】:loop to add multiple popups problem - flex循环添加多个弹出窗口问题 - flex
【发布时间】:2011-08-05 16:49:48
【问题描述】:

我有一个用于显示多个弹出窗口的 for 循环。

我似乎有多个弹出窗口出现在屏幕上,但在我完成并关闭顶部弹出窗口后,下面其他其他按钮上的所有按钮似乎停止运行。

如何让所有弹出窗口在前一个关闭后保留其功能?

这是我用来添加弹出窗口的代码:

reminderadd = reminder_add(PopUpManager.createPopUp(this,reminder_add,true));
reminderadd.postpone_button.visible = true;
reminderadd.title.text = "Reminder - " + remindernum;
reminderadd["add_button"].addEventListener("click",reminderUpdate);
reminderadd["cancel_button"].addEventListener("click",reminderDismiss);
PopUpManager.centerPopUp(reminderadd);

【问题讨论】:

  • 一个弹窗已经不是很好的用户体验了。您是否试图通过多个应用程序将人们从您的应用程序中赶走?无论如何,您没有在问题中显示足够的代码来确定问题的根源。
  • 删除事件监听器的代码是什么?您可能正在从堆栈中的第二个项目而不是顶部项目中删除侦听器。由于您无法关闭那个,它“看起来”好像没有任何功能在任何弹出窗口上运行。但是由于我认为您不会保留对所有弹出窗口的引用,除非您使用 event.currentTarget 删除侦听器,否则您实际上不太可能从多个弹出窗口中删除侦听器。您的症状表明它与您关闭的不同。

标签: apache-flex function for-loop popup


【解决方案1】:

在createPopUp()中设置第三个参数为false

@RIAstar - 当我早上醒来时,我设置了两个相隔 5 分钟的闹钟。如果第一个警报显示一个合并的警报列表,我就不会准时上班=P

还按照 Amy 的建议添加 useWeakReference:

reminderadd["add_button"].addEventListener("click",reminderUpdate, false, 0, true); promptadd["cancel_button"].addEventListener("click",reminderDismiss, false, 0, true);

【讨论】:

    猜你喜欢
    • 2013-02-13
    • 1970-01-01
    • 2012-01-18
    • 2019-11-12
    • 2014-08-30
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    相关资源
    最近更新 更多