我有个air申请。单击应用程序菜单项将打开本机窗口。就像在其他应用程序中一样,我希望在本机窗口打开时,应该禁止访问应用程序中的其他首选项(如关闭应用程序等)。
我该怎么做呢?
发布于 2012-12-28 08:19:35
我不知道有什么简单的方法可以做到这一点。我能想到的最好的办法就是监听停用事件,阻止它,然后手动重新激活窗口。下面是一些代码:
var args:NativeWindowInitOptions = new NativeWindowInitOptions();
var subWindow:NativeWindow = new NativeWindow(args);
subWindow.activate();
subWindow.addEventListener(Event.DEACTIVATE, onDeactivate);
private function onDeactivate(event:Event):void
{
event.preventDefault();
NativeWindow(event.target).activate();
}这将确保此subWindow在关闭之前始终保持焦点。
我可以看到这种方法和这种类型的子窗口的典型应用程序行为有两个不同之处。
1)父窗口可以被拖来拖去(出于某种原因,这不会调度停用事件)
2)通常情况下,子窗口应该是一种“闪烁”,并播放一个警报声,指示必须先处理它,然后才能执行进一步的操作(这至少是Windows 7上其他应用程序的行为;我不确定其他操作系统的行为)。
对于拖动问题,您应该能够让父窗口侦听MOVING事件,并在子窗口处于活动状态时使用preventDefault()。
我没有看到任何复制2的行为的好方法。你可以在停用事件中使用子窗口notifyUser(NotificationType.INFORMATIONAL),但它不同于其他应用程序所做的事情。
https://stackoverflow.com/questions/14061764
复制相似问题