http://www.shch8.com/blog/post/20.html
判断键盘上两个按钮同时按下即是否使用了组合键.
KeyboardEvent类,提供了普通键盘上三个控制键(Ctrl,Shift和Alt)是否处在活动状态的判断,通过这个判断来确定用户是否按下了组合键.
但是,组合键的判断不能写在KEY_DOWN事件里,因该写在KEY_UP事件中才能获取.
原因很简单,我举个例子,我们先按下Ctrl键时,触发的是KEY_DOWN事件,接着不要放开Ctrl键再去按V键
这时会触发两个事件
第一:触发Ctrl键的弹起事件,尽管我们没放开Ctrl键,但按下了V键所以这个事件被抛来了,我们正好在这里捕获到组合键.
第二:触发Vl键的按下事件,在这里就判断不到Ctrl键按下的判断了,所以如果我们把组合键放在KEY_DOWN中是判断不到的.
AS3代码
- stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
- function keyUpHandler(event:KeyboardEvent):void {
- if(event.keyCode==86&&event.ctrlKey){
- trace("您按下了Ctrl+V")
- }
- }