我知道您可以在控件中使用右键单击选择上下文菜单来选择剪切,复制,粘贴等。我还注意到您可以使用Windows键盘快捷键CTRL-C复制和CTRL-V粘贴。
Windows支持原生CTRL-Insert(用于复制)和SHIFT-Insert(用于粘贴)。
但是,在Flex中,似乎这些似乎不起作用。有没有人能够允许这些键盘事件?任何解决方案都表示赞赏。
答案 0 :(得分:1)
注意:操作系统和Web浏览器将在Adobe Flash Player或AIR之前处理键盘事件。例如,在Microsoft Internet Explorer中,按Ctrl + W会在任何包含的SWF文件调度键盘事件之前关闭浏览器窗口。
你可以做类似的事情
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" creationComplete="init()">
<mx:Script>
<![CDATA[
private function init():void{
this.addEventListener(MouseEvent.CLICK, clickHandler);
this.addEventListener(KeyboardEvent.KEY_DOWN,keyPressed);
}
private function clickHandler(event:MouseEvent):void {
stage.focus = this;
}
private function keyPressed(evt:KeyboardEvent):void{
if(evt.ctrlKey && evt.keyCode == 65)
trace("CTRL A is pressed");
if(evt.ctrlKey && evt.keyCode == 66)
trace("CTRL B is pressed");
}
]]>
</mx:Script>
</mx:Application>
然后写入操作系统剪贴板:
import flash.desktop.ClipboardFormats;
var copy:String = "A string to copy to the system clipboard.";
Clipboard.generalClipboard.clear();
Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, copy);
要从操作系统剪贴板中读取:
import flash.desktop.ClipboardFormats;
var pasteData:String = Clipboard.generalClipboard.getData(ClipboardFormats.TEXT_FORMAT) as String;
答案 1 :(得分:1)
从Flash Player 10开始提供剪贴板类。