2016-03-09 63 views
0

首先,我很抱歉問這樣一個愚蠢的問題,但我沒有得到任何答案,我在a.s.3中是新的。現場角色移動

我想我的角色移動,所以我有3個動畫MC框架。 1待機模式2向前走3向左走。所以我做了編碼它的完美的工作除了它的不動(我的意思是它不改變它的位置是每幀7)

這裏是我的代碼

stop(); 

var leftPressed:Boolean = false; 
var rightPressed:Boolean = false; 

kims.addEventListener(Event.ENTER_FRAME, moveKim); 
stage.addEventListener(KeyboardEvent.KEY_DOWN, SetKeyPressed); 
stage.addEventListener(KeyboardEvent.KEY_UP, UnsetKeyPressed); 

function moveKim(event:Event){ 

    if (leftPressed) 
    { 
     kims.x -= 7; 
    } 

    if (rightPressed) 
    { 
     kims.x += 7;  
    }  
} 

function SetKeyPressed(event:KeyboardEvent):void{ 

    switch (event.keyCode) 
    { 
     case Keyboard.LEFT: 
     { 
      leftPressed = true; 
      gotoAndStop(3); 

      break; 
     } 
     case Keyboard.RIGHT: 
     { 
      rightPressed = true; 
      gotoAndStop(2); 

      break; 
     } 
    } 
} 

function UnsetKeyPressed(event:KeyboardEvent):void { 

    switch (event.keyCode) 
    { 
     case Keyboard.LEFT: 
     { 
      leftPressed = false; 
      gotoAndStop(1); 

      break; 
     } 
     case Keyboard.RIGHT: 
     { 
      rightPressed = false; 

      gotoAndStop(1); 
      break; 
     } 
    } 
} 

回答

0

因爲enterFrame事件未觸發您的碼。 GotoAndStop(3)表示您的movieClip轉到了第3幀,然後停止播放。

而你把一個動畫放在一個框架中?這只是一張照片嗎?您可以使用movieClip作爲步行動畫。其代碼如下:

function moveKim(event:Event){ 

if (leftPressed) 
{ 
    kims.x -= 7; 
} 

if (rightPressed) 
{ 
    kims.x += 7;  
}  

}

功能SetKeyPressed(事件:的KeyboardEvent):無效{

switch (event.keyCode) 
{ 
    case Keyboard.LEFT: 
    { 
     leftPressed = true; 
     _animate.setAnimation("walk");// change the animation from stand to walk; 
     _animate.gotoAndPlay(1); 


     break; 
    } 

} 

}

如果你還可以使用定時器來控制你的動畫。 您可以在基本ActionScript 3.0的第24章中瞭解這一點。