现场角色运动

时间:2016-03-09 08:00:53

标签: actionscript-3 flash

首先,我很遗憾地提出这样一个愚蠢的问题,但我在任何地方都没有得到任何答案,而且我是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;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

因为代码中未触发if事件。 enterFrame表示您的movieClip转到第3帧,然后停止播放。

你把一个动画放在一帧中?它只是一张照片吗?您可以将movieClip用作步行动画。代码如下:

GotoAndStop(3)

}

function SetKeyPressed(event:KeyboardEvent):void {

function moveKim(event:Event){

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

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

}

如果您还可以使用计时器来控制动画。 您可以在Essential ActionScript 3.0的第24章中了解这一点。