Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 在一个地方处理整个程序的键盘事件_Actionscript 3_Air - Fatal编程技术网

Actionscript 3 在一个地方处理整个程序的键盘事件

Actionscript 3 在一个地方处理整个程序的键盘事件,actionscript-3,air,Actionscript 3,Air,我正在为AS3 AIR应用程序创建一个小型开发人员控制台,我希望F12添加控制台屏幕显示的切换功能,但我不想让我的程序浪费一堆对控制台的调用来显示或隐藏它,我也不想在我的应用程序的不同屏幕上重新创建控制台 我想知道是否有一种方法或一个地方,我可以把我的键盘事件切换显示,将处理整个应用程序?目前,我已经尝试将其放入我的主类,该类调用第一个屏幕,希望能够处理它,但只要我单击另一个屏幕,我的eventListener就不会被调用 有什么想法吗?您可以将事件侦听器添加到,而不是特定的视图,这将实现您所需

我正在为AS3 AIR应用程序创建一个小型开发人员控制台,我希望F12添加控制台屏幕显示的切换功能,但我不想让我的程序浪费一堆对控制台的调用来显示或隐藏它,我也不想在我的应用程序的不同屏幕上重新创建控制台

我想知道是否有一种方法或一个地方,我可以把我的键盘事件切换显示,将处理整个应用程序?目前,我已经尝试将其放入我的主类,该类调用第一个屏幕,希望能够处理它,但只要我单击另一个屏幕,我的eventListener就不会被调用


有什么想法吗?

您可以将事件侦听器添加到,而不是特定的视图,这将实现您所需的减少Woops,我今天不太同意

作为将来的参考,我在Main函数的Stage中添加了事件监听器,每次都会接收它

stage.addEventListener(KeyboardEvent.KEY_DOWN, toggleDevConsole, false, 0, true);

要实现真正的应用程序级键盘处理,请将侦听器附加到
NativeApplication.NativeApplication
对象上

NativeApplication.nativeApplication.addEventListener(KeyboardEvent.KEY_DOWN, toggleDevConsole,false,0,true);
只有当特定的舞台(窗口)具有焦点时,将侦听器附加到舞台才会起作用。如果应用程序有多个需要交互的窗口,这将成为一个问题


对于单窗口应用程序,两者都可以。

好主意,我已经用一个类似的解决方案对其进行了分类,即在我的主函数中的stage中添加事件侦听器,它似乎可以按预期工作。谢谢,没问题,很高兴你找到了一个解决方案。这只会在你引用的阶段有焦点的窗口中起作用。