我正在使用动作脚本 3 和 CS5.5。我希望根据键盘输入使我的角色以不同的方式制作动画。比如说如果我按下右箭头键,我希望我的跑步动画开始,如果我按下左箭头键,我想反转相同的动画。然后当没有输入时,我希望他只是站着,当按下向上箭头键时,我希望跳跃动画起作用。在动作脚本 3 中执行此操作的最佳方法是什么?
问问题
3142 次
2 回答
0
首先,您使用 KeyboardEvent 检查是否按下了箭头键。那么你在事件监听器函数中究竟做了什么取决于你的动画是如何创建的。例如,如果您正在播放在 Flash 中绘制的 MovieClip,则在 KeyboardEvent 侦听器中切换 MovieClip。
于 2012-04-27T15:06:16.550 回答
0
使用帧标签以编程方式控制播放头在时间线上的移动。
媒体
角色剪辑应具有以下结构:
-3 层时间轴,每层有 3 个关键帧,共 9 个
--一个帧标签层,给每一帧一个帧标签(“standing”,“walkingRight”,“walkingLeft”)
--a 停止层,使每个帧分开,因此帧之间的移动仅由代码控制
--a sub-animations layer,每一帧有一个动画,所有的动画循环播放并且没有停止
---向左走动画剪辑
---向右走动画剪辑
---站立动画剪辑
为了清楚起见,这些嵌套动画中的每一个都占用一帧,但如果您将播放头移到它上面,看起来该动画是单独播放的,并且在您的代码移动播放头之前它会一直保持这种状态。
编码
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;
}
}
这是最简单的示例——单击左箭头,动画显示角色向左走(尽管在某个位置,您需要添加实际的移动代码)。单击右箭头,它向右走。按任何其他键,角色站立。
于 2012-04-27T20:25:25.190 回答