Есть ли способ разрешить вставку из буфера обмена с помощью Shift-Insert поверх CTRL-V? - PullRequest
2 голосов
/ 11 февраля 2010

Я знаю, что вы можете использовать контекстное меню, щелкнув правой кнопкой мыши в элементе управления, чтобы выбрать вырезать, копировать, вставить и т. Д. Я также заметил, что вы можете использовать сочетания клавиш Windows CTRL-C Скопируйте и CTRL-V для вставки.

Windows поддерживает встроенную CTRL-вставку (для копирования) и SHIFT-вставку (для вставки).

Однако внутри Flex кажется, что они не работают. Кто-нибудь был в состоянии разрешить эти события клавиатуры? Любые решения приветствуются.

Ответы [ 2 ]

1 голос
/ 18 августа 2010

Класс буфера обмена доступен начиная с Flash Player 10.

1 голос
/ 11 февраля 2010

Примечание. Операционная система и веб-браузер будут обрабатывать события клавиатуры до 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;
...