2014-01-27 57 views
0

我正在学习Flash的基础知识,我只是想通过编辑符号的框架来动画一个符号/实例,只要双击它即可。在特定时间触发动画

有没有办法触发动画?例如,面对屏幕的人的默认动画是他上下摆动。但是当按下右箭头键时,那么他的动画就会朝着屏幕的右侧上下晃动。

回答

1

创建从帧1到10的动画,上框架10插入的代码:

gotoAndPlay(1); 

创建从帧11至20的第二动画循环,上框架20插入的代码:

gotoAndPlay(11); 

等。

然后添加事件侦听到舞台返听键盘事件:

stage.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyBoard); 
function handleKeyBoard(event:KeyboardEvent):void 
{ 
    switch(event.keyCode) { 
    case Keyboard.RIGHT : 
     animation.gotoAndPlay(11);// you can use label names or frame index 
     break; 
    case Keyboard.LEFT : 
     animation.gotoAndPlay(1);// return to original loop 
     break; 
    } 
} 
+0

谢谢!这正是我需要的。快速的问题:对于我要输入代码的地方,我需要双击图像,编辑符号。然后,我会在哪里插入代码?我需要点击框架10,然后把代码放在哪里? – user2789610

+0

将它放在包含动画的时间轴的第一帧。请注意,您可能需要将animation.gotoAndPlay更改为简单的gotoAndPlay,以便将其定位到舞台上的当前场景而不是对象 – mika

0

你的意思是at specified times可能是事件触发时间。

所以我的建议是添加一个事件监听器到你想要触发一个特定的事件触发动画时。

例如,当按下右箭头键时,就会出现一个动画,让他在屏幕右侧上下晃动。

animation.addEventListener(KeyboardEvent.KEY_DOWN, 
    function onKeyDown(e:KeyboardEvent):void 
    { 
     //When Right key is pressed 
     if(e.keyCode == Keyboard.RIGHT) 
     { 
      //animation.gotoAndPlay("bobbing up and down"); 
      //or do something else 
     } 
    }); 
+0

键盘事件需要绑定到舞台,而不是目标精灵 – mika

+0

谢谢!这与mika所说的类似(尽管听众会在舞台上),所以我给了你一个upvote /不管他们在SO中被称为什么。 – user2789610