当浏览器为Google Chrome时,Ctrl+C在Flash播放器(SWF文件)中不起作用

x33g5p2x  于 2022-09-21  发布在  Go
关注(0)|答案(2)|浏览(170)

我的项目是用Flex3开发的,
<<Site Link Removed now>>

你可以在这里检查它,我面临的问题是,当swf在Chrome浏览器中运行时,从屏幕textarea复制(Ctrl+c)内容。

假设,我必须在舞台上添加一些文本,所以在左侧打开的文本区域,我不能复制文本区域中的文本,虽然在textarea中右击,并选择复制选项,这是可行的,但我的客户要求使用Ctrl+c复制内容,尽管它在其他浏览器上运行得很好,

只有Chrome不支持复制(Ctrl+c),尽管可以全选(Ctrl+A

所以这件事,我想我应该讨论一下,也许有人也有同样的问题,

yqyhoc1h

yqyhoc1h1#

使用KeyboardEvent.KEY_DOWN检测按下“C”。然后检查ctrlKey是否已关闭,并使用System.setClipboard(source.text);设置剪贴板内容。

textArea.addEventListener (KeyboardEvent.KEY_DOWN, onKeyDown);

private function onKeyDown ( ev : KeyboardEvent ) : void 
{
    if (ev.keyCode != 67 || !ev.ctrlKey) return;
    var text:String = textArea.text;
    System.setClipboard( text);
}

不过,请注意:有时奇怪的事情可能会同时发生,比如文本内容消失等等。你可能得想办法解决这个问题!

8nuwlpux

8nuwlpux2#

不只是Chrome能做到这一点,Safari和其他一些浏览器也能做到这一点。

最好的办法是使用一个JavaScript库来捕获这些键盘事件,然后将它们传递给您的Flex应用程序。

用于两者之间的通信:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html

如何在JavaScript中检测键盘快捷键(我在Windows XP上测试了Chrome中的Ctrl+1:http://www.openjs.com/scripts/events/keyboard_shortcuts/

相关问题