解剖一个脚本范例
2009-07-14 13:21
148 查看
解剖一个脚本范例
为了让大家对动作脚本有个大概的认识,本讲对一个脚本进行了剖析。
在下面这个动画范例中,当用户把小虫拖到捕杀器上时,小虫变黑并掉下去,捕杀器闪动。此动画的长度是一帧,包含两个对象:小虫电影剪辑实例和捕杀器电影剪辑实例。每个电影剪辑也包含一帧。
本动画中仅有一个脚本,被附加给小虫实例。在Object Actions(对象动作)面板中的情况如下所示:
两个对象都是电影剪辑,这样你才能在实例面板中赋给它们实例名,并用动作脚本处理他们。小虫的实例名是bug,捕杀器的实例名是zapper。因为脚本是附加给bug的,因此,在脚本中bug可以用this来引用。关键字this是指调用脚本的对象。
在这个脚本中,有两个onClipEvent事件处理程序和两个不同的事件:load和enterFrame。 onClipEvent(load) 语句中的动作在动画载入时仅执行一次。onClipEvent(enterFrame)语句中的动作每当播放头进入一帧时都执行。即使是在单帧动画中,播放头仍然重复进入那一帧,脚本也就被重复执行。下面的动作发生在每个onClipEvent事件处理程序中:
onClipEvent(load) :一个startDrag动作使小虫电影剪辑可以拖放。在本事件处理程序中,使用new操作符和Color(颜色)构造函数创建了一个 Color(颜色)对象的实例,并被赋给变量zap:
onClipEvent (load) {
startDrag (this, true);
zap = new Color(this);
}
onClipEvent(enterFrame) :一个条件if语句执行hitTest动作,以检查小虫实例(this)是否碰到捕杀器实例(_root.zapper)。 有两种可能的计算结果,true(真)或false(假):
onClipEvent (enterFrame) {
if (this.hitTest(_root.zapper)) {
zap.setRGB(0);
setProperty (_target, _y, _y+50);
setProperty (_root.zapper, _alpha, 50);
stopDrag ();
} else {
setProperty (_root.zapper, _alpha, 100);
}
}
如果hitTest动作返回true,load事件创建的zap对象被用来把小虫的颜色设置为黑色。小虫的y属性(_y)被设置为本身加上50,使小虫往下掉。捕杀器的透明度(_alpha)被设置为50,使它变暗。stopDrag动作停止小虫被拖动。
如果hitTest动作返回false,else语句下面的动作被执行,捕杀器的_alpha值被设置为100。它的_alpha值从初始状态(100)变为捕杀到小虫状态(50),然后又恢复到初始状态,这就使得捕杀器象闪烁一样。在小虫被捕杀和掉下来之后,hitTest动作返回false,else语句被执行。
为了让大家对动作脚本有个大概的认识,本讲对一个脚本进行了剖析。
在下面这个动画范例中,当用户把小虫拖到捕杀器上时,小虫变黑并掉下去,捕杀器闪动。此动画的长度是一帧,包含两个对象:小虫电影剪辑实例和捕杀器电影剪辑实例。每个电影剪辑也包含一帧。
本动画中仅有一个脚本,被附加给小虫实例。在Object Actions(对象动作)面板中的情况如下所示:
两个对象都是电影剪辑,这样你才能在实例面板中赋给它们实例名,并用动作脚本处理他们。小虫的实例名是bug,捕杀器的实例名是zapper。因为脚本是附加给bug的,因此,在脚本中bug可以用this来引用。关键字this是指调用脚本的对象。
在这个脚本中,有两个onClipEvent事件处理程序和两个不同的事件:load和enterFrame。 onClipEvent(load) 语句中的动作在动画载入时仅执行一次。onClipEvent(enterFrame)语句中的动作每当播放头进入一帧时都执行。即使是在单帧动画中,播放头仍然重复进入那一帧,脚本也就被重复执行。下面的动作发生在每个onClipEvent事件处理程序中:
onClipEvent(load) :一个startDrag动作使小虫电影剪辑可以拖放。在本事件处理程序中,使用new操作符和Color(颜色)构造函数创建了一个 Color(颜色)对象的实例,并被赋给变量zap:
onClipEvent (load) {
startDrag (this, true);
zap = new Color(this);
}
onClipEvent(enterFrame) :一个条件if语句执行hitTest动作,以检查小虫实例(this)是否碰到捕杀器实例(_root.zapper)。 有两种可能的计算结果,true(真)或false(假):
onClipEvent (enterFrame) {
if (this.hitTest(_root.zapper)) {
zap.setRGB(0);
setProperty (_target, _y, _y+50);
setProperty (_root.zapper, _alpha, 50);
stopDrag ();
} else {
setProperty (_root.zapper, _alpha, 100);
}
}
如果hitTest动作返回true,load事件创建的zap对象被用来把小虫的颜色设置为黑色。小虫的y属性(_y)被设置为本身加上50,使小虫往下掉。捕杀器的透明度(_alpha)被设置为50,使它变暗。stopDrag动作停止小虫被拖动。
如果hitTest动作返回false,else语句下面的动作被执行,捕杀器的_alpha值被设置为100。它的_alpha值从初始状态(100)变为捕杀到小虫状态(50),然后又恢复到初始状态,这就使得捕杀器象闪烁一样。在小虫被捕杀和掉下来之后,hitTest动作返回false,else语句被执行。
相关文章推荐
- 一个简单的脚本范例(参考用)
- 1.2 - 第一章:PHP基础 - 解剖一个PHP脚本
- 写一个脚本方便在vim编辑的文件的路径中切换
- 用C编写一个模拟实现C++多态应用的一个范例
- 下面是一个notify.sh脚本的简单示例
- 一个简单实用的linux脚本
- 一个用来帮助查看变量的PHP脚本源码
- 计算索引碎片的一个脚本
- 用python写了一个读取网页的url的脚本
- delphi 文件夹权限设置(执行一个小脚本的笨办法)
- [SoapUI] 从上一个测试步骤获取ID list,通过Groovy脚本动态生成 Data Source 供后面的步骤使用
- 分享一个不错的iptables脚本
- 一个查询窗口并行运行SQL脚本
- PHP使用Yii框架写一个不间断执行的脚本
- Perl 的一个ftp自动脚本
- 树梅派应用44:又一个让树莓派开机运行Python脚本的方法
- Shell脚本写一个快速简单的检测局指定域网内有多少台服务器
- 解剖Nginx·自动脚本篇(7)类型相关脚本系列
- 一个小脚本,查看你的机器共进出多少包包
- 1.shell脚本修改多台服务器上的某一个文件中的值。