as3 如何判断同时按下两个键

 

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);
原文地址:https://www.cnblogs.com/AS30/p/2245480.html