ActionScript MovieClip会向左移动,但不会向右移动

ActionScript MovieClip会向左移动,但不会向右移动,actionscript,actionscript-2,flash-cs4,Actionscript,Actionscript 2,Flash Cs4,我有一个舞台,有一个电影剪辑,实例名为“mc”。目前我有一个代码,假设玩家左右移动,当左键或右键被释放时,“mc”会稍微滑动。我遇到的问题是,使“mc”移到左边是可行的,但用于右边的确切代码却不行 所有这些代码都出现在主舞台的第一帧上 //Variables var mcSpeed:Number = 0;//MC's Current Speed var mcJumping:Boolean = false;//if mc is Jumping var mcFalling:Boolean = fa

我有一个舞台,有一个电影剪辑,实例名为“mc”。目前我有一个代码,假设玩家左右移动,当左键或右键被释放时,“mc”会稍微滑动。我遇到的问题是,使“mc”移到左边是可行的,但用于右边的确切代码却不行

所有这些代码都出现在主舞台的第一帧上

//Variables

var mcSpeed:Number = 0;//MC's Current Speed
var mcJumping:Boolean = false;//if mc is Jumping
var mcFalling:Boolean = false;//if mc is Falling
var mcMoving:Boolean = false;//if mc is Moving
var mcSliding:Boolean = false;//if mc is sliding
var mcSlide:Number = 0;//Stored for use when creating slide
var mcMaxSlide:Number = 1.6;//Max Distance the object will slide.

//Player Move Function
p1Move = new Object();
p1Move = function (dir:String, maxSpeed:Number) {
 if (dir == "left" && _root.mcSpeed<maxSpeed) {
  _root.mcSpeed += .2;
  _root.mc._x -= _root.mcSpeed;
 } else if (dir == "right" && _root.mcSpeed<maxSpeed) {
  _root.mcSpeed += .2;
  _root.mc._x += _root.mcSpeed;
 } else if (dir == "left" && speed>=maxSpeed) {
  _root.mc._x -= _root.mcSpeed;
 } else if (dir == "right" && _root.mcSpeed>=maxSpeed) {
  _root.mc._x += _root.mcSpeed;
 }
}

//onEnterFrame for MC
mc.onEnterFrame = function():Void  {
 if (Key.isDown(Key.LEFT)) {
  if (_root.mcMoving == false && _root.mcSliding == false) {
   _root.mcMoving = true;
  } else if (_root.mcMoving == true && _root.mcSliding == false) {
   _root.p1Move("left",5);
  }
 } else if (!Key.isDown(Key.LEFT)) {
  if (_root.mcMoving == true && _root.mcSliding == false) {
   _root.mcSliding = true;
  } else if (_root.mcMoving == true && _root.mcSliding == true && _root.mcSlide<_root.mcMaxSlide) {
   _root.mcSlide += .2;
   this._x -= .2;
  } else if (_root.mcMoving == true && _root.mcSliding == true && _root.mcSlide>=_root.mcMaxSlide) {
   _root.mcMoving = false;
   _root.mcSliding = false;
   _root.mcSlide = 0;
   _root.mcSpeed = 0;
  }
 } else if (Key.isDown(Key.RIGHT)) {
  if (_root.mcMoving == false && _root.mcSliding == false) {
   _root.mcMoving = true;
  } else if (_root.mcMoving == true && _root.mcSliding == false) {
   _root.p1Move("right",5);
  }
 } else if (!Key.isDown(Key.RIGHT)) {
  if (_root.mcMoving == true && _root.mcSliding == false) {
   _root.mcSliding = true;
  } else if (_root.mcMoving == true && _root.mcSliding == true && _root.mcSlide<_root.mcMaxSpeed) {
   _root.mcSlide += .2;
   this._x += .2;
  } else if (_root.mcMoving == true && _root.mcSliding == true && _root.mcSlide>=_root.mcMax) {
   _root.mcMoving = false;
   _root.mcSliding = false;
   _root.mcSlide = 0;
   _root.mcSpeed = 0;
  }
 }
};
//变量
var mcSpeed:数字=0//MC的当前速度
变量mcJumping:Boolean=false//如果mc正在跳跃
var mcFalling:Boolean=false//如果mc正在下降
var mcMoving:Boolean=false//如果mc正在移动
var mcslideng:Boolean=false//如果mc在滑动
变量mcSlide:Number=0//存储以供创建幻灯片时使用
var mcMaxSlide:Number=1.6//对象将滑动的最大距离。
//游戏者移动功能
p1Move=新对象();
p1Move=函数(dir:String,maxSpeed:Number){
如果(dir==“left”&&&&\u root.mcSpeed=maxSpeed){
_root.mc.\u x+=\u root.mcSpeed;
}
}
//MC的单帧结构
mc.onEnterFrame=函数():Void{
if(键isDown(键左)){
if(_root.mcMoving==false&&u root.mcslideng==false){
_root.mcMoving=true;
}else if(_root.mcMoving==true&&u root.mcMoving==false){
_根p1Move(“左”,5);
}
}如果(!Key.isDown(Key.LEFT)){
if(_root.mcMoving==true&&u root.mcslideing==false){
_root.mcSliding=true;
}else if(_root.mcMoving==true&&&u root.mcSlide==true&&u root.mcSlide=\u root.mcaxslide){
_root.mcMoving=false;
_root.mcSliding=false;
_root.mcSlide=0;
_root.mcSpeed=0;
}
}否则如果(键isDown(键右侧)){
if(_root.mcMoving==false&&u root.mcslideng==false){
_root.mcMoving=true;
}else if(_root.mcMoving==true&&u root.mcMoving==false){
_根p1Move(“右”,5);
}
}否则如果(!Key.isDown(Key.RIGHT)){
if(_root.mcMoving==true&&u root.mcslideing==false){
_root.mcSliding=true;
}else if(_root.mcMoving==true&&&u root.mcSlide==true&&u root.mcSlide=\u root.mcMax){
_root.mcMoving=false;
_root.mcSliding=false;
_root.mcSlide=0;
_root.mcSpeed=0;
}
}
};

我只是不明白为什么当你按下左箭头时,它的工作完全正常,但当你按下右箭头时,它没有反应。它实际上是相同的代码。

由于循环代码,您从未阅读过它:

if(keyleft){
    //catches all keyleft
}
else if(!keyleft){
    //katches all non key left
}
else if(keyright){
    //Never called because all eventualities have been covered by the above.
}
使用
if(keyright)
而不是
else if
,它应该可以工作