AS3在常规组合键的判断上更方便了 Shift Ctrl Alt 都可以直接得到状态
A+B+C这样的组合还得自己写方法,可以在KEYDOWN时它按下的键放入数组,KEYUP时删除。然后读取数组知道这些键是否已经按下。
var key_obj:Object=new Object;
function onKeyDownHandler(_evt:KeyboardEvent ):void {
var _code:String =String.fromCharCode (_evt.keyCode);
key_obj[_code]=true;
_evt.ctrlKey&&trace("Ctrl键被按下");
_evt.altKey&&trace("Alt键被按下");
_evt.shiftKey&&trace("Shift键被按下");
for (var p:String in key_obj) {//用于其它字母和数字鍵
trace("当前按下的键有:"+p);
}
}
function onKeyUpHandler(_evt:KeyboardEvent ):void {
var _code:String =String.fromCharCode (_evt.keyCode);
key_obj[_code]=null;
}
stage.addEventListener(KeyboardEvent.KEY_UP ,onKeyUpHandler);
stage.addEventListener(KeyboardEvent.KEY_DOWN ,onKeyDownHandler);