【问题标题】:View events are firing multiple times after navigating views导航视图后,视图事件多次触发
【发布时间】:2012-12-05 00:16:23
【问题描述】:

我制作了一个基本的 Air/Flex 应用程序,它有一个主视图和一个第二个视图,并附加了用于激活和停用它们的 mxml 事件。从主视图有一个按钮可以推动第二个视图。如果我从主视图暂停并重新打开该应用程序,则停用和激活事件会分别触发一次。然后,如果我转到第二个视图并执行相同的操作,则主视图中的激活/停用事件与第二个视图中的事件一起触发。当我返回主视图并重复测试时,会触发 3 组激活/停用事件(2 组来自家里,1 组来自 2nd)并且这种情况一直持续下去。为什么会发生这种情况,我该如何预防?我在这里做错了吗?

我已经在 Android 2.3 设备和桌面测试仪上的 Air 3.3-3.5 中对此进行了测试。

【问题讨论】:

    标签: android actionscript-3 apache-flex mobile air


    【解决方案1】:

    您似乎以某种方式使用 Event.ACTIVATE 事件而不是 FlexEvent.VIEW_ACTIVATE

    ACTIVATE 事件在您的应用从操作系统获得焦点时调度。它是一个广播事件——每个事件调度程序都会触发它。因此,您的所有视图都会发送它。

    视图被回收,因此,当您第二次打开主视图时,似乎有一个您实际在屏幕上看到的新副本和一个在屏幕外等待垃圾收集的旧副本,仍在接收事件。所以,这就是为什么您在主视图中有两个事件。

    您可以阅读http://corlan.org/2011/01/12/understanding-flex-mobile-views-and-viewnavigator/ 了解有关视图生命周期的更多详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-07
      相关资源
      最近更新 更多