gpt4 book ai didi

apache-flex - 从浏览器或 AIR 中的模块化 Flex 应用程序捕获 Cmd-C(或 Ctrl-C)键盘事件

转载 作者:行者123 更新时间:2023-12-02 02:38:48 27 4
gpt4 key购买 nike

在浏览器中运行 Flex 应用程序或作为 AIR 应用程序时,似乎无法捕获通常用于复制的键盘事件,大概是因为浏览器或操作系统首先拦截了它。

有没有办法告诉浏览器或操作系统让事件通过?

例如,在 AdvancedDataGrid 上,我将 keyUp 事件设置为 handleCaseListKeyUp(event),它调用以下函数:

        private function handleCaseListKeyUp(event:KeyboardEvent):void
{
var char:String = String.fromCharCode(event.charCode).toUpperCase();

if (event.ctrlKey && char == "C")
{
trace("Ctrl-C");
copyCasesToClipboard();
return;
}

if (!event.ctrlKey && char == "C")
{
trace("C");
copyCasesToClipboard();
return;
}

// Didn't match event to capture, just drop out.
trace("charCode: " + event.charCode);
trace("char: " + char);
trace("keyCode: " + event.keyCode);
trace("ctrlKey: " + event.ctrlKey);
trace("altKey: " + event.altKey);
trace("shiftKey: " + event.shiftKey);
}

运行时,我永远无法在按下命令键(显示为 KeyboardEvent.ctrlKey)的同时释放“C”键。我得到以下跟踪结果:

charCode: 0
char:
keyCode: 17
ctrlKey: false
altKey: false
shiftKey: false

如您所见,我唯一可以捕获的事件是释放命令键,甚至没有发送在按住命令键的同时释放“C”键。

有没有人成功实现了标准的复制和粘贴键盘处理?

我是注定要单独使用“C”键(如代码示例所示)还是提供一个可用的复制按钮?

或者我是否需要在更高级别手动创建监听器并将事件向下传递到我的模块化应用程序的内部?

最佳答案

我做了一个测试,我在舞台上聆听按键事件并注意到(在我的 Mac 上)我可以捕获 control-c、control-v 等。但任何涉及命令( 键)直到我释放命令键才被捕获,然后 ctrlKey 为假(即使文档说 ctrlKey 对于 Mac 上的命令键应该为真),并且 charCode 为 0。简而言之,非常无用。

关于apache-flex - 从浏览器或 AIR 中的模块化 Flex 应用程序捕获 Cmd-C(或 Ctrl-C)键盘事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31849/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com