Actionscript 3 AS3如何根据键盘输入制作不同的动画?
我正在使用动作脚本3和CS5.5。我希望让我的角色根据键盘输入以不同的方式设置动画。比如说,如果我按下向右箭头键,我希望我的跑步动画开始,如果我按下向左箭头键,我希望反转相同的动画。然后,当没有输入时,我希望他只是站着,当按下向上箭头键时,我希望跳跃动画工作。在动作脚本3中执行此操作的最佳方法是什么?首先,您可以使用KeyboardEvent检查是否按下了箭头键。那么,您在事件侦听器函数中的具体操作取决于动画的创建方式。例如,如果您正在播放Flash中绘制的MovieClip,则在键盘事件侦听器中切换MovieClip。使用帧标签以编程方式控制播放头在时间线上的移动 媒体 角色剪辑应具有以下结构: -时间轴上有3层,每层共有9个关键帧 --帧标签层,为每个帧提供帧标签(“站立”、“向右行走”、“向左行走”) --一个停止层使每个帧分离,因此帧之间的移动仅由代码控制 --子动画层,每个帧中有一个动画,所有动画循环并且没有停止 ---向左行走动画剪辑 ---向右行走动画剪辑 ---站立动画剪辑 需要明确的是,这些嵌套动画中的每一个都占用一帧,但是如果将播放头移动到它上面,则看起来该动画是单独播放的,并且在代码移动播放头之前一直保持这种状态 编码Actionscript 3 AS3如何根据键盘输入制作不同的动画?,actionscript-3,flash,flash-cs5,Actionscript 3,Flash,Flash Cs5,我正在使用动作脚本3和CS5.5。我希望让我的角色根据键盘输入以不同的方式设置动画。比如说,如果我按下向右箭头键,我希望我的跑步动画开始,如果我按下向左箭头键,我希望反转相同的动画。然后,当没有输入时,我希望他只是站着,当按下向上箭头键时,我希望跳跃动画工作。在动作脚本3中执行此操作的最佳方法是什么?首先,您可以使用KeyboardEvent检查是否按下了箭头键。那么,您在事件侦听器函数中的具体操作取决于动画的创建方式。例如,如果您正在播放Flash中绘制的MovieClip,则在键盘事件侦听器
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;
}
}
这是最简单的例子——单击左箭头,动画显示角色向左行走(尽管在一个点上,您需要添加实际的移动代码)。单击向右箭头,它将向右移动。按任何其他键,角色就会站立。好的,但如果有意义的话,我所有的动画都在一个movieclip中。我有一个人站着。接着,他又跑了一个,又跳了一个。如何访问动画的不同部分?另外,如何反转动画?比如,如果他们按左键,我希望它面向左,如果按右键,它面向右。你能改变电影唇吗?如果是这样的话,将不同的动画分割成不同的movieclips比用代码体操来处理非理想的设置要简单。如果我这样做,在我进行碰撞检测时会不会变得更复杂?而且事实上,我需要为每一个动画创建一个新类。在我看来,应该有办法做到这一点。嗯。。。有点混乱的说明。你能不能解释得更深入一点,对于一个完全的初学者来说=D。我想我有点理解你的意思,但是我不习惯用时间线来输入代码。我可以在我的游戏构造函数中使用事件侦听器吗?示例已更新。对于传统的程序员来说,时间线非常奇怪。您只需要在时间线中编写一个“stop();”,但您必须对媒体进行结构化,以便它可以按照您的意愿进行操作。感谢您花时间解释这一点