我正在制作Flash游戏。以下是3种不同的攻击(标签名称: attack1, attack2, attack3
),具有不同的动画(键盘绑定z,x,c)。
问题
例如,如果我使用attack1(通过单击“z”)它显示约100帧的动画(动画持续3秒),但在动画期间我点击attack2(x)它取消attack1动画并开始播放attack2动画。我需要在动画期间制作它不能通过使用其他动画来中断。
我创建了一个数组:
var codes:Array = new Array(0, 90, 88, 67);
var attack:Number = 0;
这是我的key_down功能:
private function key_down(event:KeyboardEvent)
{
if (event.keyCode == 90)
{
if (attack > 0)
{
return;
}// don't interrupt other attack
for (var c in codes)
{
if (codes[c] == event.keyCode)
{
attack = c;
Hero.gotoAndStop("attack" + attack);
}
}
}
if (event.keyCode == 88)
{
if (attack > 0)
{
return;
}// don't interrupt other attack
for (c in codes)
{
if (codes[c] == event.keyCode)
{
attack = c;
Hero.gotoAndStop("attack" + attack);
}
}
}
if (event.keyCode == 67)
{
if (attack > 0)
{
return;
}// don't interrupt other attack
for (c in codes)
{
if (codes[c] == event.keyCode)
{
attack = c;
Hero.gotoAndStop("attack" + attack);
}
else
{
Hero.gotoAndStop("attack" + attack);
}
}
}
}
当我使用它时,它不会中断相同的攻击动画,我的意思是如果我通过单击“x”使用Attack1我可以再次单击“x”并且动画不会中断,但仍然可以通过单击其他按钮“z”来中断或“C”。
正如我在时间轴中理解的最后一个动画的帧我需要添加类似
的内容attack=0;
MovieClip(parent).gotoAndStop("stay");
动画播放后攻击将设置为0并继续播放“停留”动画,但我收到错误:Access of undefined property attack.
答案 0 :(得分:0)
我无法说明你的问题。但据我所知,你想制作动画,没有任何障碍。在这种情况下,您需要为角色执行基本的打开 - 关闭动画。
e.g。那样;
用于角色攻击动画的1 - 30 帧。这意味着“打开”动画。
30 - 60 当您遇到攻击时,您需要执行“关闭”动画。
function attack():void
{
if(currentState == "Attack")
{
currentState = "Attack";
timelineAnimation.gotoAndPlay("Attack_InAnimation");
}
else if(currentState == "CounterAttack")
{
currentState = "CounterAttack";
timelineAnimation.gotoAndPlay("Attack_OutAnimation");
}
}
我希望这对你有用。这只是我的方法。