【发布时间】:2012-03-08 10:22:20
【问题描述】:
好的,所以我有一个电影剪辑实例为“男人”,我制作了他,这样他就有了这样的空闲和行走帧。他也可以向左/向右移动。 (我也让他攻击,但这无关紧要);
[空闲][行走[] 最后一帧有
gotoAndPlay("walk");
我需要它循环遍历“行走”帧,直到我抬起左/右键然后回到“空闲”位置。发生的情况是,即使我没有提起钥匙,它也会通过一次循环然后进入空闲状态。这是我的代码
var leftKeyDown:Boolean = false;
var upKeyDown:Boolean = false;
var rightKeyDown:Boolean = false;
var downKeyDown:Boolean = false;
var charSpeed:Number = 7;
man.addEventListener(Event.ENTER_FRAME, moveChar);
function moveChar(event:Event):void{
if(leftKeyDown || rightKeyDown)
{
man.gotoAndPlay("walk");
}
if(rightKeyDown)
{
man.x += charSpeed;
man.scaleX=1;
}
if(leftKeyDown)
{
man.x -= charSpeed;
man.scaleX=-1;
}
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, checkKeysDown);
function checkKeysDown(event:KeyboardEvent):void{
if(event.keyCode == 37 || event.keyCode == 65){
leftKeyDown = true;
}
if(event.keyCode == 38 || event.keyCode == 87){
upKeyDown = true;
}
if(event.keyCode == 39 || event.keyCode == 68){
rightKeyDown = true;
}
if(event.keyCode == 40 || event.keyCode == 83){
downKeyDown = true;
}
}
// checking for upkeys
stage.addEventListener(KeyboardEvent.KEY_UP, checkKeysUp);
function checkKeysUp(event:KeyboardEvent):void{
if(event.keyCode == 37 || event.keyCode == 65){
leftKeyDown = false;
man.gotoAndStop("idle");
}
if(event.keyCode == 38 || event.keyCode == 87){
upKeyDown = false;
}
if(event.keyCode == 39 || event.keyCode == 68){
rightKeyDown = false;
man.gotoAndStop("idle");
}
if(event.keyCode == 40 || event.keyCode == 83){
downKeyDown = false;
}
}
谢谢
【问题讨论】:
标签: flash actionscript-3 animation actionscript flash-cs4