CTRL + C,CTRL + V和CTRL + X事件侦听器

问题描述:

如何增加对按Ctrl + C按Ctrl + V按Ctrl + X keydown事件的事件侦听器。我尝试的声明作为对键升降功能如下:CTRL + C,CTRL + V和CTRL + X事件侦听器

public function OnKeyDown(e:KeyboardEvent){  
if((e.ctrlKey && (e.keyCode == Keyboard.C)) { 
     trace ("copy"); 
    }else if((e.ctrlKey && (e.keyCode == Keyboard.V)) { 
     trace ("paste"); 
    }else if((e.ctrlKey && (e.keyCode == Keyboard.X)) { 
     trace ("cut"); 
    } 
} 
+0

什么问题呢? – Art 2012-07-27 07:09:53

+0

这个问题将是http://stackoverflow.com/questions/11666068/create-cut-copy-paste-in-as3 – loxxy 2012-07-27 07:14:15

+0

它没有工作 – 2012-07-27 07:14:57

systemManager.stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp); 

protected function onKeyUp(event:KeyboardEvent):void 
{ 
    if (event.ctrlKey) 
      switch(event.keyCode) 
      { 
       case 67: break; //Keyboard.C 
       case 86: break; //Keyboard.V 
       case 88: break; //Keyboard.X 
      } 
} 

我使用这个代码。

+0

是的,这也适用于我.. – andy 2012-11-19 10:50:47

+0

嘿,我发现它只适用于我必须确保“ENTER”之前提高CTRL。然而,用户操作速度非常快,几乎同时提高了输入和控制,不能像我们想要的那样操作。你有没有注意到这个问题?或者你已经解决了它。 – Tinggo 2013-04-27 03:22:18

+0

这是内存泄漏,除非您将适当位置的其他位置的侦听器移除。 – 2014-05-12 00:03:19

您好我认为这是工作的罚款:

stage.addEventListener(KeyboardEvent.KEY_DOWN,onkeydown) 

function onkeydown(e:KeyboardEvent) 
{ 

    if(e.ctrlKey) 

    { 

    stage.addEventListener(KeyboardEvent.KEY_UP,onkeyup) 

    } 
} 

function onkeyup(e:KeyboardEvent) 

{ 
    if (e.keyCode == 88) 

    { 
     trace("You pressed Ctrl+X"); 

    } 
    else if (e.keyCode == 67) 

    { 
     trace("You pressed Ctrl+c"); 

    } 
    else if (e.keyCode == 86) 

    { 
     trace("You pressed Ctrl+v"); 

    } 

    e.ctrlKey=false; 
}