0
as3에서 별도의 클래스에서 키보드 입력을 얻는 방법에 대해 궁금합니다. 화살표 키를 사용하여 이동할 클래스가 있지만 hero
클래스에 있어야합니다. main 함수에서 이동 함수를 호출하는 방법은 무엇입니까?키보드 입력에서 별도의 클래스를 사용하여
as3에서 별도의 클래스에서 키보드 입력을 얻는 방법에 대해 궁금합니다. 화살표 키를 사용하여 이동할 클래스가 있지만 hero
클래스에 있어야합니다. main 함수에서 이동 함수를 호출하는 방법은 무엇입니까?키보드 입력에서 별도의 클래스를 사용하여
보통 무대에서 키보드 이벤트를 듣기 때문에이 문제를 처리하는 가장 좋은 방법은 필요한 특수 키보드 논리를 Hero 클래스 자체에 추가하는 것입니다.
키보드 이벤트 수신기를 추가 및 제거 할 때 트리거하려면 Hero에서 ADDED_TO_STAGE 및 REMOVED_FROM_STAGE 이벤트를 수신 대기 할 수 있습니다.
기본적인 예는 다음과 같이 작동 할 수 있습니다 :
public class Hero extends Sprite
{
// Constructor
public function Hero()
{
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
// Event handlers
protected function onAddedToStage(event:Event):void
{
this.removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
this.addEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage);
this.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
this.stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
}
protected function onRemovedToStage(event:Event):void
{
this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
this.removeEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage);
this.stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
this.stage.removeEventListener(KeyboardEvent.KEY_UP, onKeyUp);
}
protected function onKeyDown(event:KeyboardEvent):void
{
switch (event.keyCode)
{
case Keyboard.LEFT:
// Start movement
break;
case Keyboard.RIGHT:
// Start movement
break;
}
}
protected function onKeyUp(event:KeyboardEvent):void
{
switch (event.keyCode)
{
case Keyboard.LEFT:
// Stop movement
break;
case Keyboard.RIGHT:
// Stop movement
break;
}
}
}
을 나는 heroMovement 기능을 이미 만든이 : 를이 내가 이전에 그 모든 것을 설명했다 게시물입니다 'http://stackoverflow.com/questions/ 23233098/signals-keyboard-movement-as3? noredirect = 1 # comment35555366_23233098' – kevorski