2009-10-09 3 views

답변

8
this.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed); 
.... 

function onKeyPressed(event:KeyboardEvent):void 
{ 
    if (event.keyCode==Keyboard.DELETE) { 
     ..... 
     } 

} 
이 좋은 일하는 것

... 하지만 플래시에서 무비를 테스트하는 경우 수출은 SWF 및 테스트 할 수 있도록, 그것은 작동하지 않습니다 ....

+0

흥미 롭습니다. 시뮬레이터가 FLASH IDE 내부에서 실행 중이기 때문에 IDE 자체가 삭제 명령을 가로 채고 있습니다. – Soviut

2

그냥 TEXT_INPUT 이벤트를 사용하고있는 것으로 추측됩니다. 삭제 및 백 스페이스에는 사용할 수 없습니다. 스테이지에 eventListener를 추가하고 KeyboardEvent을들을 수있는 것들을 잡으려고합니다.

+0

아니요, 무대에서 이벤트를 듣고 있습니다. 이를 반영하여 코드 스 니펫이 업데이트되었습니다. – Soviut

+0

Document 클래스의 범위에 있더라도 stage.addEventListener (KeyboardEvent.KEY_DOWN, eventKeyDown)를 작성해야합니다 (stage. *!). 나를 위해 일합니다 ... –

1

청취자를 첨부 한 표시 객체에 포커스가 있으면 코드가 제대로 작동합니다. Theo가 말했듯이 세계 청취의 경우 청취자를 stage에 붙여야합니다. 아직 표시 목록에 추가되지 않은 객체에서 stage에 액세스하면 null 오류가 발생합니다. ADDED_TO_STAGE 이벤트 처리기에서 안전하게 수행하십시오.

+0

그래서 Soviut 문제가 무엇입니까? 그냥 궁금해서 ... –

1

올드 스레드하지만, 사람이 얻는 경우에 여기까지 : IDE 내부의 Flash Player에서 이러한 키는 바로 가기와 연결됩니다. 무비를 테스트 할 때, 플레이어에서 컨트롤> 키보드 단축키 비활성화를 선택하면 이벤트가 되돌아옵니다.

관련 문제