当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > Flash 动作脚本之:资料速查(16)

Flash动画制作
Flash AS 3.0实例教程:用Tween类制作缓动动画
Flash AS2实例教程:制作镭射闪光字动画效果
Flash AS2基础教程:一步绘制线条
Flash cs3仿真艺术设计4.4:模糊滤镜的应用
Flash cs3仿真艺术设计4.5:模糊运动制作飞行文字
Flash cs3仿真艺术设计4.6:组合效果应用实例
Flash cs3仿真艺术设计4.7:模糊滤镜的应用
Flash AS 3.0基础教程:物理基础之重力
Flash AS3.0菜鸟学飞教程:创建自定义类
Flash cs3仿真艺术设计4.8:选择模糊的应用
Flash cs3仿真艺术设计4.9:背景模糊应用技巧
Flash AS3.0菜鸟学飞教程:类的编写之时间轴代码转换为外部类
Flash AS3.0菜鸟学飞教程:类的编写之不使用库元件
Flash cs3仿真艺术设计5.1:2.5D基础应用
Flash cs3仿真艺术设计5.2:2.5D高级应用
Flash AS3.0菜鸟学飞教程:含有多个类的AS3类文件
Flash AS3.0实例教程:AS3.0代码制作3D旋转动画效果
Flash cs3仿真艺术设计5.3:2.5D动画技巧之绘制猴子
Flash cs3仿真艺术设计5.4:交换方法制作嘴型吻合
Flash cs3仿真艺术设计5.5:嵌套法打造角色嘴型吻合

Flash动画制作 中的 Flash 动作脚本之:资料速查(16)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-22   浏览: 30 ::
收藏到网摘: n/a

解剖一个脚本范例

    

解剖一个脚本范例


  为了让大家对动作脚本有个大概的认识,本讲对一个脚本进行了剖析。

  在下面这个动画范例中,当用户把小虫拖到捕杀器上时,小虫变黑并掉下去,捕杀器闪动。此动画的长度是一帧,包含两个对象:小虫电影剪辑实例和捕杀器电影剪辑实例。每个电影剪辑也包含一帧。

  本动画中仅有一个脚本,被附加给小虫实例。在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语句被执行。