有没有办法在CTRL-V顶部使用Shift-Insert从剪贴板中粘贴?

时间:2010-02-11 19:38:33

标签: flex insert paste shift

我知道您可以在控件中使用右键单击选择上下文菜单来选择剪切,复制,粘贴等。我还注意到您可以使用Windows键盘快捷键CTRL-C复制和CTRL-V粘贴。

Windows支持原生CTRL-Insert(用于复制)和SHIFT-Insert(用于粘贴)。

但是,在Flex中,似乎这些似乎不起作用。有没有人能够允许这些键盘事件?任何解决方案都表示赞赏。

2 个答案:

答案 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开始提供剪贴板类。