Flash 动作脚本之:资料速查(16)_Flash教程
推荐:Flash 动作脚本之:资料速查(15)使用ActionScript编写脚本二、脚本的规划和调试当你为整个动画编写脚本时,脚本的数量和种类可能很大。决定使用哪些动作,怎样有效地构造脚本,脚本应该放在
解剖一个脚本范例解剖一个脚本范例
为了让大家对动作脚本有个大概的熟悉,本讲对一个脚本进行了剖析。
在下面这个动画范例中,当用户把小虫拖到捕杀器上时,小虫变黑并掉下去,捕杀器闪动。此动画的长度是一帧,包含两个对象:小虫电影剪辑实例和捕杀器电影剪辑实例。每个电影剪辑也包含一帧。
本动画中仅有一个脚本,被附加给小虫实例。在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语句被执行。
分享:Flash 动作脚本之:资料速查(14)创建智能剪辑(2)三、设置剪辑参数你可以在智能剪辑中编写动作脚本,用已定义的参数来改变智能剪辑的行为。举一个简单的例子,假如你用Frame定义了一个剪辑参
- 相关链接:
- 教程说明:
Flash教程-Flash 动作脚本之:资料速查(16)。