Flash实例教程——鱼戏莲叶间 2
技术要领制作Flas易做图“鱼戏莲叶间”的技术要领主要在于几个ActionScript命令的应用。本例用到的ActionScript命令主要有:
1. attachMovie ( idName, newName, depth )
从库中取一个为动作脚本设置了链接的元件并将其附加到场景中。idName是库中要附加到舞台上的影片剪辑元件的链接名称,也就是在“链接属性”对话框中的“标识符”字段中输入的名称。newName是为使用该命令附加到场景中的影片剪辑实例指定的唯一名称。depth是一个整数,用来指定影片剪辑所放位置的深度级别,这个深度级别(level)是在动画播放时由Flash分配的,它与层(layer)的概念类似但又有所区别。每个深度级别只能容纳一个影片剪辑实例,如果为同一级别附加新的实例,旧实例将自动消失。表示深度级别的整数越大,相当于显示的层越贴近我们的视线。
本例用到的鱼头、鱼身事先并不从库拖入到场景中,而是使用attachMovie命令在动画播放时从库中调用,并利用depth属性将它们的层级区分开来。
使用removeMovieClip 或 unloadMovie 命令可以删除用 attachMovie 附加的影片剪辑实例。
2. myMovieClip.duplicateMovieClip(newName, depth)
在影片播放时创建指定影片剪辑myMovieClip的实例,用newName指定实例的唯一名称,用depth指定实例的深度级别。duplicateMovieClip与attachMovie方法有些类似,但是duplicateMovieClip是复制已经添加到场景中的剪辑,而不是从库中调用。如果删除了场景中用作调用的父影片剪辑,所有用该方法复制出的实例都将一同被删除。
本实例中的莲叶便是用duplicateMovieClip命令添加的。看完本实例后有读者可能会问,场景中已经有莲叶的影片剪辑实例了,为什么还要用duplicateMovieClip命令将其复制一遍,这个操作是否多余?原因在于duplicateMovieClip命令指定了莲叶的深度级别,否则它们将默认显示在最低级别,那样的话,就不是鱼戏莲叶间,而是鱼戏莲叶上了。
用duplicateMovieClip添加的影片剪辑可以用 removeMovieClip方法删除。、
3. with(object){
statement(s);
}
使用object参数指定一个对象(比如影片剪辑),并使用 statement(s) 参数计算对象中的表达式和动作,为对象设置属性。使用with语句可以避免重复书写对象的名称或路径。
在为鱼的各节设置属性时使用该语句以简化脚本程序。