在指定时间触发动画

Posted

技术标签:

【中文标题】在指定时间触发动画【英文标题】:Triggering an animation at specified times 【发布时间】:2014-02-19 00:55:34 【问题描述】:

我正在学习 Flash 的基础知识,我刚刚弄清楚了如何通过双击符号的框架来为符号/实例设置动画。

有没有办法触发动画?例如,有一个人面对屏幕的默认动画是他上下摆动。但是当按下右箭头键时,goto 会出现他面向屏幕右侧上下摆动的动画。

【问题讨论】:

【参考方案1】:

你的意思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
        
    );

【讨论】:

键盘事件需要绑定到舞台,而不是目标精灵 谢谢!这类似于 mika 所说的,(尽管听众会站在舞台上)所以我给了你一个赞成票/无论他们在 SO 中被称为什么。【参考方案2】:

从第 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;
  
 

【讨论】:

谢谢!这正是我所需要的。快速提问:对于我输入代码的地方,我需要双击图像来编辑符号。然后我会在哪里插入代码?是不是需要点击第10帧,然后把代码放在哪里? 将它放在包含动画的时间轴的第一帧。请注意,您可能需要将 animation.gotoAndPlay 更改为简单地 gotoAndPlay 以便它以当前场景而不是舞台上的对象为目标

以上是关于在指定时间触发动画的主要内容,如果未能解决你的问题,请参考以下文章

qml 定时器以及几种简单动画

:事件和动画

通过切换布局触发的动画 UICollectionView 单元格调整大小

jQuery中的事件与动画

JQuery中的事件与动画

[ jquery 效果 fadeTo([speed,[easing],[fn]]) ] 此方法用于通过调整不透明度的变化至指定目标来实现所有匹配元素的淡入效果,并在动画完成后可选地触发一个回调函数(代