2024年6月4日发(作者:)

第13卷第1期 

2 011年3月 

辽宁师专学报 

Journal of Liaoning Teachers College 

VO1.13 N0.I 

Mat.2 0 1 1 

【学术研究】 

使用Flash循环动画制作屏保特效的技巧与方法 

刘洪涛 

(锦州师专,辽宁锦州121o00) 

摘 要:介绍如何在Flash中利用if…else语句及duplicateMovieClip方法制作出具有特殊效果的屏幕保护 

程序. 

关键词:循环;屏幕保护程序;数组 

中图分类号:TP317.4 文献标识码:A 文章编号:1008—5688(2011)01—0036—02 

很多人在使用台式电脑时喜欢使用屏幕保护程序,一方面可以保护显像管,另一方面可以保护个人隐 

私,再有可以节约用电,因为目前Windows下的屏幕保护程序都是比较暗的,这就可以大幅降低屏幕的 

亮度,以节省一些用电.Flash动画的精美玄妙之处在于不仅可以实现色彩绚丽的画面,更重要的是能够 

利用ActionScript动作脚本对动画进行编程,从而使动画产生很多特殊的效果.本文利用Flash中if.一 

else语句及duplicateMovieClip方法制作出可体现海洋的深度、浩瀚的海底世界以及海洋中五颜六色的气 

泡等特殊效果的屏幕保护程序. 

1相关理论 

1.1 this的用法 

this是标识符,用于引用按钮或影片剪辑实例.this的用法包含以下几个方面: 

(1)在附加到按钮的on事件处理函数动作中,this引用包含该按钮的时间轴.例如在舞台上放一个 

按钮元件.在帧上定义一个变量var i一0,在按钮上输入以下代码: 

On(press) 

Trace(this)//输出的结果将是一levelO,就是说这里 

的this就是对根时间轴的引用 

Trace(this.i)//输出的将是0 

) 

(2)在附加到影片剪辑的onClipEvent()事件处理函数动作中,this引用该元件自身的时间轴.例 

如在上放一个影片剪辑,并且输入实例名为my—mc,在“动作”面板中输入AS脚本,输出实例,代码 

如下: 

onclipEvent(1oad) onclipEvent(enterFrame) 

{ ( 

Trace(this);//输出一levelO.my—mc,说明现在的This.一x+=2;//现在MC向右运动了,为什么?因 

this是影片剪辑本身 

) 

为this是影片剪辑本身 

) 

结果显示,元件“my—mc”向右移动了,这说明当this出现在影片剪辑的onClipEvent()事件处 

理函数动作中时,this代表影片剪辑本身. 

(3)按钮事件写在帧上.例如在舞台上放一个按钮,并且输入实例名button—btn,在帧上输入以下 

代码: 

Button

btn.onpress=function()Trace(this); 

{ ) 

输出的结果为一level0.button—btn,而非一levelO,这跟将代码加下按钮上是截然不同的. 

1.2 duplicateMovieClip和removeMovieClip函数 

(1)duplicateMovieClip用于复制影片剪辑,语法结构为:duplicateMovieClip(目标,新名称,深度). 

其中,“目标”参数为要进行复制的目标影片剪辑;“新名称”参数为新复制的影片剪辑的唯一标识符; 

“深度”参数为新复制的影片剪辑的唯一深度级别. 

收稿日期:201l一01—2O 

作者简介:刘洪涛(1979一),女,辽宁义县人,讲师,主要从事现代教育技术方面研究. 

刘洪涛 使用Flash循环动画制作屏保特效的技巧与方法 37 

(2)removeMovieClip用来删除指定的影片剪辑,语法结构为:removeMovieClip(目标).“目标”参 

数为用duplicateMovieClip()创建的影片剪辑实例的目标路径,或者是用MovieClip. 

duplicateMovieClip()创建的影片剪辑的实例名称. 

2操作步骤 

步骤一:打开Flash应用程序,新建一个文件,将素材拖拽到舞台,输入文本“海底世界”,文件存 

为“海底世界.fla”. 

步骤二:将素材拖拽到舞台,插入帧. 

(1)插入新图层,名称修改为“圆环”,从“库”面板中拖拽元件“圆环动画”到舞台上; 

(2)选中实例“圆环动画”,设置实例名称为“ring—me”; 

(3)分别选中“圆环”和“底图”图层第3帧,按下F5键插入帧. 

步骤三:输入AS脚本. 

(1)插入新图层,名称修改为“AS”,按下F9键打开“动作”面板,在普通模式下输入以下代码: 

/*初始化变量i用于循环的初值*/ 其复制的更多*/ 

var i 0; var max一30; 

/*设定复制环的最大数为3o个,也可以修改这个值让 

(2)选中“AS”图层第2帧,按下F7键插入空白关键帧,在“动作”面板中输入AS脚本,代码 

片段如下: 

/*递增i的值*/this[“ring—mc”+i3.一X—Math.random()* 

i—i+1;800; 

/*使用dupticateMovieClip方法复制影片剪辑ring—me this[“ring—me”+i3.一x—Math.random()* 

*/ 600; 

duplicateMovieClip(“ring

me”

”ring

me”+i,900 this[“ring—me”+i].一xscale=i*5; 

i);this[“ring—mc”+i].一yscale—i*5; 

/*下面的~段是设置位置和编写缩放及一alpha属性的this[“ring—mc”+i].一alpha—Math.random() 

变化*/ *100; 

(3)选中“AS”图层第3帧,按下F7键插入空白关键帧,在“动作”面板中输入AS脚本,代码 

片段如下: 

/*条件设置,如果前一递增的i的值max,则返回第2 ( 

帧*/ gotoAndplay(2); 

if(i<一max) ) 

步骤四:测试影片,保存文件. 

3 总结 

在Flash中使用循环动画制作屏保特效的关键技术是应用if…else语句,当然还应注意的是要设置实 

例名称、为帧添加动作和要使用duplicateMovieClip方法复制影片剪辑.Flash ActionScript编程的目的是 

更好地与用户进行交互,因此在以后的研究过程中可将庞大的数据库系统及各种程序与Flash内置的高级 

ActionSript动作脚本编程语句相结合,制作出更为复杂的人机交互的网页、游戏及在线演示系统等. 

(审稿人 李树东,责任编辑 于 海J 

(上接5页) 

时速度或曲线的切线斜率等实例,并由此引出导数的定义.这就容易使初学者形成“速度就是导数”、“斜 

率就是导数”的第一印象.事实上,“速度就是导数”这个结论只有在变速直线运动情况下才能成立,而 

在曲线运动情况下一般是不成立的.同样,对于切线方向也是如此,例如给出的运动方程为s=s( ),求运 

动物体的运动方向,显然就不是 .总之,教师在进行导数概念教学时,对于这些基本概念之间的关系一 

定要讲解清楚.至于判断函数的周期性,一般是采用定义法和间接法来进行. 

参考文献: 

[1]刘玉琏,傅沛仁.数学分析讲义(上)(第2版)I-M3.北京:人民教育出版社,1981. 

[2]蒋众益,高福岐,蒋非非,等.高等数学习题解FM].沈阳:辽宁科学技术出版社,1982 

(审稿人任冬,邵艳艳)