艺虎动画 > flash中onClipEvent()的用法

flash中onClipEvent()的用法

翼虎动漫   2009-11-12

 

 

 

onClipEvent():
这个语句指专门给电影剪辑添加命令的语句,就像on语句是专门给按钮添加命令一样。
影片剪辑事件类别
onClipEvent(load) 当影片片断第一次加载道时间轴时,会触发本事件一次
onClipEvent(enterFrame) 当影片片断加载时间轴时,不论是放映或停止状态或显示与否,都会不断触发本事件。所以只要此片断被加载后,此事件会一直不断地执行,直到影片片断被删除为止。
onClipEvent(unload) 当影片片断被删除时,会触发本事件一次。
onClipEvent(mouseDown)
当鼠标左键被按下时,会触发本事件一次。

onClipEvent(mouseUp) 当被按下的鼠标左键北放开时,会触发本事件一次。
onClipEvent(mouseMove) 只要在场景中移动鼠标,就会不断触发本事件。
onClipEvent(keyDown) 当键盘被按下时,会触发本事件。
onClipEvent(keyUp) 当已按下的键盘被松开时,会触发本事件一次


enterFrame()语句和load()语句:

要为影片剪辑添加脚本,首先要选中影片剪辑,再打开它对应的动作面板,然后在其中输入脚本。影片剪辑脚本和按钮的脚本类似,它们都使用事件处理函数,与按钮的on关键字不同,影片剪辑使用 onClipEvent关键字。当某种影片剪辑事件发生时,就会触发相应的事件处理函数。

影片剪辑最重要的两种事件是load和enterFrame, load事件在影片剪辑完全加载到内存中时发生。在每次播放Flash影片时,每个影片剪辑的load事件只发生一次。

在主时间轴停止播放时,影片中的影片剪辑并不会停止播放,这个特性决定了影片剪辑的另一个事件enterFrame的重要性。enterFrame事件在影片每次播放到影片剪辑所在帧时发生。如果主时间轴中只有一帧,且不论它是否在该帧停止,该帧中的影片剪辑都会不断触发enterFrame事件,且触发的频率与Flash影片的帧频一致。

影片剪辑事件的使用方法如下所示:

onClipEvent (load) {
var i = 0;
}
onClipEvent (enterFrame) {
trace(i);
i++;
}

当影片剪辑的load事件发生时,将变量i设置为0。当影片剪辑的enterFrame事件发生时,向输出窗口中发送i的值,然后将i加1。输出窗口中会从0开始输出以1递增的数字序列,直到影片被关闭为止。

为了熟悉影片剪辑事件处理函数的用法,我们来为影片剪辑编写一段简单的脚本,使影片剪辑逆序播放,我们将从影片剪辑的最后一帧处开始播放,使用prevFrame命令使影片剪辑每次后退一帧。

本例文件场景中有一个影片剪辑元件MCaaa,查看一下它的属性面板,并没有为其实例命名,这是因为我们要直接在影片剪辑的动作面板中添加脚本,并不需要用到实例名称。

选中影片剪辑MCaaa,此时动作面板的标题栏中应为“动作-影片剪辑”。打开动作面板,其中添加了如下ActionScript:

onClipEvent (load) {
gotoAndStop(40);
}
onClipEvent (enterFrame) {
prevFrame();
}

在事件处理函数onClipEvent (load)中,令Flash影片的播放头转到影片剪辑的第40帧(即最后一帧)。这个事件处理函数只在影片剪辑被加载完成时执行1次。第2个事件处理函数onClipEvent (enterFrame)每播放1帧就执行1次,使影片剪辑回退1帧。

按Ctrl+Enter键测试影片,你将看到齿轮以与上例相反的方向转动,直到影片剪辑的时间轴回到第1帧,prevFrame命令不起作用,影片剪辑停止播放。要让它连续不断的播放,可以在影片剪辑元件MCaaa的时间轴第1帧的动作面板中添加如下语句:

gotoAndStop(40);




load()语句的用法其实很简单,load()语句就是装载的意思,一但程序被激活,load()语句就发生事件,不用点击任何按钮就可以执行程序体,比如,你如果一打开你的swf格式的影片就想进入新浪主页,那么你就在你的fla文件(源文件)的第一贞上编写:
load(getURL("http://www.sina.com.cn","_blank"))
这个语句就是说:你发布的swf格式的影片或者网页,一旦被打开,那么立即执行程序---直接进入新浪主页,并且在另外一个窗口打开新浪主页(_blank就是在另外一个窗口打开)!!