AS3基础教程-第26课-控制时间轴
1、请打开flashCS6软件,建立AS3的flash文档。为了演示效果,我们需要制作一个补间动画:
第一帧绘制一个没有边框的红色正圆,然后在第30帧按F6键,然后将舞台上的正圆用选择工具变一下形,最后“创建补间形状”


2、直接测试影片,我们发现动画在不断的重复,一直播放。
3、新建一个图层,从公用库内拖出两个按钮,布置到舞台上。在属性面板内分别设置实例名为play_btn 和 stop_btn
然后使用 代码片段 面板,给这两个按钮分别添加 鼠标单击 命令,后将自动生成的代码内的注释都删掉。

4、特别注意:由于时间轴上有30帧,使用代码片段功能添加代码后,代码被添加到了30帧!而我们需要将代码添加到第一帧,那么,请如下操作:
单击选中下图中的Actions图层内的30帧,拖动它到第一帧,松开鼠标即可实现目的

1、stop() 方法:
停止时间轴。其实是暂停的效果,播放头会停止在当前帧,画面处于静止状态
play()方法:
从当前帧开始播放
=====================
以步骤一创建的flash文档为蓝本,我们给按钮添加代码如下
play_btn 的相应函数内添加
play()
stop_btn的相应函数内添加
stop()
完整的代码如下:
play_btn.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);
function fl_MouseClickHandler(event:MouseEvent):void
{
play()
}
stop_btn.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_2);
function fl_MouseClickHandler_2(event:MouseEvent):void
{
stop()
}
测试影片看看效果吧:先单击停止按钮(实现的是暂停的效果),再单击播放按钮
2、gotoAndPlay(n) 方法:
将时间轴转到n所在的帧处,并开始播放。
举例:
gotoAndPlay(5); //从第5帧开始播放。
3、gotoAndStop(n) 方法:
将时间轴转到n所在的帧处并停止。
举例:gotoAndStop(5); //跳到第5帧并停止。
4、nextFrame()方法:
将时间轴移到下一帧并停止。
5、prevFrame()方法:
将时间轴移到上一帧并停止。
6、停止与暂停:stop()方法 使时间轴停止播放,但它是停在当前帧处。很显然,这是暂停的效果。
当我们再次点击播放按钮时,时间轴从当前帧处开始播放。所以在暂停按钮上的命令是:stop();停止的效果是回到第1帧,所以在停止按钮上的命令是:gotoAndStop(1);
1、控制影片的播放,应该有快进快退的功能才算完整。要快进快退,那就应该要知道当前的播放头在时间轴的什么位置,然后,在当前的位置加上或减去一个帧数,比如5帧或10帧来实现。
2、currentframe属性:
播放头当前在时间轴中的位置。有了这个属性就可实现快进快退的效果了。
我们将播放按钮的相应函数内的play()删掉,替换成:
gotoAndPlay(currentframe+5);
如此,每单击一下播放按钮就会快进5帧
同理,将停止按钮的代码stop()替换为:
gotoAndPlay(currentframe-5);
如此,每单击一下停止按钮就会快退5帧
this翻译成中文就是 这个
代表的是 当前的对象(主时间轴)
3、可能我们还想整得更完美点,在播放时能够有一个播放进度条才好。
分析一下,当前帧现在已有了,如果能有一个动画的总帧数,不就行了,是的有总帧数这个属性的。
4、totalframes属性:
当前时间轴的总帧数。
在第一帧,第一行添加代码如下:
trace(this.totalFrames)
这样,动画一播放,就会输出30,表示当前时间轴共有30帧
用当前帧去除以总的帧数,这不就是播放进度吗,后续教程中进行讲解。