開始しているゲームでKeyboardEventを機能させるのに問題があります。私には3つのクラスがあります。1つはレベルを処理するためのもので、もう1つは実際のレベルであり、もう1つはアバターを表すためのものです。
レベル
import flash.display.MovieClip;
import flash.events.Event;
public class Fase extends Cena
{
var avatar:Avatar;
public function Fase()
{
// constructor code
this.addEventListener(Event.ADDED_TO_STAGE, onAdded);
}
public function onAdded(e:Event)
{
avatar = new Avatar();
this.addChild(avatar);
avatar.x = stage.width/2;
avatar.y = 30;
}
public function die()
{
this.removeEventListener(Event.ADDED_TO_STAGE, onAdded);
(this.parent as ScreenHandler).removeChild(this);
}
}
アバター
public class Avatar extends MovieClip
{
public function Avatar()
{
// constructor code
this.addEventListener(Event.ADDED_TO_STAGE, onAdded);
}
public function onAdded(e:Event)
{
//stage.focus=this;
this.addEventListener(KeyboardEvent.KEY_DOWN, apertou);
}
public function apertou(event:KeyboardEvent)
{
trace("o");
if(event.keyCode == Keyboard.LEFT)
{
this.x++;
}
}
}
アバターでstage.focus=thisを使用すると、両方のクラスのすべてのパッケージがすべて機能しますが、ゲームの実行中に別の場所をクリックすると、フォーカスが失われ、機能しなくなります。誰か助けてもらえますか?
前もって感謝します