2012-07-27 176 views
1

如何增加對按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

回答

2
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

0

您好我認爲這是工作的罰款:

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; 
}