【问题标题】:Application timeout feature应用程序超时功能
【发布时间】:2011-10-01 14:11:51
【问题描述】:

我正在开发一个 AIR 2.0 应用程序,并希望在其中加入一个不活动超时功能。 (即:如果用户在 5 分钟内没有按键,那么应用程序会将用户注销。我已经实现了 flash.utils 库中可用的本机超时功能,并监听鼠标或键盘事件以清除/重置在我的主 MXML 中超时。唯一的问题是我的应用程序使用 TitleWindows 并且键盘事件似乎没有冒泡(或返回)到我正在监听它们的主 Mxml 中。因此我的应用程序认为没有活动即使在标题窗口中触发键和鼠标事件。

有没有一种方法可以让我在全局范围内固有地监听键盘和鼠标事件?为每个 TitleWindow 添加侦听器(并检查它是否打开)的前景似乎相当令人生畏。

非常感谢您的帮助。

【问题讨论】:

  • 我认为您可以将键盘事件侦听器添加到整个舞台,而不是特定的电影剪辑。

标签: flash apache-flex air


【解决方案1】:

从 UIComponent 中的任何位置(可能是主 UI 类):

private function onCreationComplete():void
{
   stage.addEventListener(KeyboardEvent.DOWN, onKeyboard);
}

private function onKeyboard(e:KeyboardEvent):void
{
   // do something
}

【讨论】:

  • 谢谢,它结合了焦点问题和“舞台”事件的监听。现在工作正常 - 感谢您的帮助。
【解决方案2】:

我认为您遇到了一个总是令人沮丧的焦点问题,请在此处查看我的答案-

Event listener to keyboard event not listening in a module

尝试答案底部的文本输入建议以测试这是否是问题所在。

【讨论】:

  • 谢谢 Nate,看起来焦点问题是问题的一部分。
  • 没有问题,土坯自己不指出焦点问题很烦人。您可以在他们自己的示例页面中看到他们在所有示例代码中使用 .setFocus() ——但在页面描述/说明中从未提及它。奇怪:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-18
  • 2015-01-24
  • 1970-01-01
  • 1970-01-01
  • 2019-04-21
  • 1970-01-01
相关资源
最近更新 更多