1
切換到我的第二個場景後,鍵盤事件不起作用,直到我左鍵單擊屏幕。
如何避免左鍵單擊,以便在移動到第二個場景後直接觸發我的鍵盤事件?去AS3中的另一個場景後點擊刪除?
更多詳細信息,您可能需要:
1場景
btnStart.addEventListener(MouseEvent.CLICK, initGame);
function initGame(e:MouseEvent) {
gotoAndPlay(1, "Gameplay");
}
第二個場景
我只用1幀。我有一個對象。我設置了鍵盤事件功能來將對象向右或向左移動。我stop()
框架。
直到我給屏幕一個鼠標點擊,我的鍵盤才能工作。
var moveUp:Boolean = false;
var moveDown:Boolean = false;
var moveLeft:Boolean = false;
var moveRight:Boolean = false;
var isMoving:Boolean = false;
stage.addEventListener(KeyboardEvent.KEY_DOWN, moveCowboy);
function moveCowboy(e:KeyboardEvent) {
if (e.keyCode == Keyboard.W) {
moveUp = true;
if (isMoving == false)
mycowboy.gotoAndPlay(15);
isMoving = true;
} else if (e.keyCode == Keyboard.S) {
moveDown = true;
if (isMoving == false)
mycowboy.gotoAndPlay(15);
isMoving = true;
} else if (e.keyCode == Keyboard.A) {
moveLeft = true;
if (isMoving == false)
mycowboy.gotoAndPlay(15);
isMoving = true;
} else if (e.keyCode == Keyboard.D) {
moveRight = true;
if (isMoving == false)
mycowboy.gotoAndPlay(15);
isMoving = true;
}
}
stage.addEventListener(KeyboardEvent.KEY_UP, stopCowboy);
function stopCowboy(e:KeyboardEvent) {
if (e.keyCode == Keyboard.W) {
moveUp = false;
} else if (e.keyCode == Keyboard.S) {
moveDown = false;
} else if (e.keyCode == Keyboard.A) {
moveLeft = false;
} else if (e.keyCode == Keyboard.D) {
moveRight = false;
}
if (moveUp == false && moveDown == false && moveLeft == false && moveRight == false) {
if (isMoving == true)
mycowboy.gotoAndPlay(1);
isMoving = false;
}
}
var myTimer:Timer = new Timer(20);
myTimer.addEventListener(TimerEvent.TIMER, myTimerFunc);
function myTimerFunc(e:Event):void {
//cowboy movement
if (moveUp) {
mycowboy.y -= 3;
mycowboy.rotation = 0;
}
else if (moveDown) {
mycowboy.y += 3;
mycowboy.rotation = 180;
}
else if (moveLeft) {
mycowboy.x -= 3;
mycowboy.rotation = -90;
}
else if (moveRight) {
mycowboy.x += 3;
mycowboy.rotation = 90;
}
}
myTimer.start();
stop();
後所有的相關的代碼的末尾添加這,不只是它的一些描述。 – null
@null確定完成。 –