Я работаю над проектом, в котором персонаж ходит вперед или назад по экрану или стреляет из винтовки в зависимости от того, нажимает ли пользователь одну из следующих клавиш клавиатуры: стрелку вперед (клавиша 39), стрелку назад (клавиша 37) или пробел (клавиша 32).
Моя проблема заключается в том, что когда пользователь нажимает и удерживает клавишу со стрелкой вперед, мувиклип персонажа воспроизводит один экземпляр анимации движения вперед, а затем движется вперед. Я хочу, чтобы анимация ходьбы вперед воспроизводилась все время, пока персонаж движется.
Вот мой код:
import fl.transitions.Tween;
import fl.transitions.easing.*;
stage.addEventListener(KeyboardEvent.KEY_DOWN, moveCharacter);
stage.addEventListener(KeyboardEvent.KEY_UP, stopCharacter);
var muzzlePosition:Number = new Number();
var bullet:Bullet = new Bullet();
function moveCharacter(e:KeyboardEvent):void {
switch (e.keyCode) {
case 39 :
if (sprite_Cicada.x<stage.stageWidth-150) {
sprite_Cicada.gotoAndPlay("walk-fwd");
sprite_Cicada.x+=5;
} else {
sprite_Cicada.x+=0;
sprite_Cicada.gotoAndPlay("push");
}
break;
case 37 :
if (sprite_Cicada.x>225) {
sprite_Cicada.x-=3;
sprite_Cicada.gotoAndPlay("walk-bkwds");
} else {
sprite_Cicada.x-=0;
sprite_Cicada.gotoAndPlay("standing");
}
break;
case 32 :
muzzlePosition=sprite_Cicada.x+sprite_Cicada.AK47.x+28;
addChild(bullet);
bullet.gotoAndStop("lead");
bullet.x=muzzlePosition;
bullet.y=328;
sprite_Cicada.gotoAndPlay("fireAK");
var shootBullet:Tween=new Tween(bullet,"x",None.easeOut,muzzlePosition,stage.stageWidth*2,.5,true);
if (bullet.x>stage.stageWidth+50) {
removeChild(bullet);
}
break;
}
}
function stopCharacter(e:KeyboardEvent):void {
sprite_Cicada.gotoAndPlay("standing");
}
1120: Access of undefined property leftkeyStatus.
и1120: Access of undefined property rightkeyStatus.
19.11.2013