我在開始製作KeyboardEvent的遊戲時遇到問題。我有三個班,一個用於處理水平,一個是實際的水平,一個代表形象:Flash上的KeyboardEvent無法正常工作
級別
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,則兩個類上的所有包都可以工作,但如果在遊戲執行過程中單擊其他位置,焦點將丟失,並且不再有效。請任何人都可以幫我嗎?
在此先感謝
謝謝馬蒂,問題解決了! =) – 2013-03-18 11:10:13