AS3如何根据键盘输入使图形做不同的动画?

时间:2012-04-27 15:03:07

标签: actionscript-3 flash flash-cs5

我正在使用Action脚本3和CS5.5。我希望根据键盘输入使我的角色以不同方式制作动画。就像说如果我按下右箭头键我希望我的运行动画开始,如果我按左箭头键我想要反转相同的动画。然后,当没有输入时,我希望他只是站着,当按下向上箭头键时,我希望跳转动画能够工作。在动作脚本3中执行此操作的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

首先,您使用KeyboardEvent检查是否按下了箭头键。那么你在事件监听器函数中究竟做了什么取决于你的动画创建的准确程度。例如,如果你正在做的是播放在Flash中绘制的MovieClip,那么在KeyboardEvent监听器中切换MovieClip。

答案 1 :(得分:0)

使用边框标签以编程方式控制播放头在时间轴上的移动。

MEDIA

字符剪辑应具有以下结构:

时间轴上的

-3层,每个层都有三个关键帧,共有九个

- 一个帧标签图层,为每个帧提供一个帧标签(“站立”,“walkingRight”,“walkingLeft”)

- 一个停止层,它使每个帧分开,因此帧之间的移动仅由代码

控制

- 一个子动画层,每帧中有一个动画,所有动画循环并且没有停止

---走左边的动画片段

---走右边的动画片段

---站立动画剪辑

为了清楚起见,这些嵌套动画中的每一个占用一帧,但是如果你将播放头移到它上面,看起来动画就是单独播放,并且它会保持这种状态,直到你的代码移动播放头。

CODE IT

var character:MovieClip=new MyCharacterClass()
addChild(character);
character.gotoAndStop("standing") 
stage.addEventListener(KeyboardEvent.KEY_UP,keyUp); 

protected function keyUp(event:KeyEvent):void
{
   switch (event.keyCode)
{
    case Keyboard.LEFT:
        character.gotoAndStop("walkingLeft")
    break;

    case Keyboard.RIGHT:
        character.gotoAndStop("walkingRight")
    break;

    default:
        character.gotoAndStop("standing")
    break;
}
}

这是最简单的示例 - 单击向左箭头,动画显示向左走的角色(尽管在一个位置,您需要添加实际的移动代码)。单击向右箭头,它向右走。按任何其他键,角色就会站立。