부드러운 키의 경우 타이머 또는 onEnterFrame을 사용하여 부드러운 컨트롤을 얻기에 충분한 키를 폴링하는 것이 좋습니다. 일을 끝내게되지만, 일정한 비용으로 끝날 것입니다.
var key:int = NaN;
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPress,false,0,true);
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyRelease,false,0,true);
this.addEventListener(Event.ENTER_FRAME,update,false,0,true);
function onKeyPress(event:KeyboardEvent):void {
key = event.keyCode;
event.stopPropagation();
}
function onKeyRelease(event:KeyboardEvent):void {
key = NaN;
event.stopPropagation();
}
function update(event:Event):void{
if(key) trace(key);
}
내가 이벤트가 전파의 중지하여 거품을하지 않도록, 그리고이 있어야 무대에 설정되어 : 모든 고급 로직의 나머지를 가지고 있다면,이 확인에 맞게해야 최상위 레벨, 이벤트 현명. 또한 나는 키가 다운 된 경우에만 키를 사용하고 그렇지 않으면 enterFrame 핸들러에서 키를 무시합니다.
HTH, 조지
이렇게하십시오. 명확히 말하면, 질문자 버전의 문제는 키가 실제로 눌려지면 움직이기 때문에 처음 키를 누를 때 한 번 움직이며 OS가 반복적 인 이벤트를 발행 할 때만 더 이동한다는 것입니다. 키를 누르고있다. 캐릭터가 움직이기를 원하지 않는다. * 키를 눌렀을 때 * 키를 누른 상태에서 프레임 업데이트 *를 움직이기를 원한다. 따라서 키 누르기 핸들러가 아닌 ENTER_FRAME 핸들러에서 움직임이 일어나야한다. – fenomas