|
|
|
|
|||
| 您现在的位置: 教师之家 >> 课件制作 >> Flash_MX >> 文章正文 | ||
|
|||||
| ActionScript初级特效制作:画面特效(1) | |||||
作者:佚名 文章来源:本站原创 点击数: 更新时间:2006-8-26 ![]() |
|||||
2.2.1 电视信号效果在Flash MX特效中,有一种经常可以用到的效果就是电视线特效。它主要用在黑色背景中,通过一些无序点与线的闪动达到这种动态的效果。程序代码如下: Movieclip.prototype.makeScratch = function(name, n, color, alpha, x, y, radius, ratio) { with (this.createEmptyMovieClip(name, n)) { //画一条透明度为alpha的线 lineStyle(radius, color, alpha); moveTo(x, y); lineTo(x, y+(100/ratio)); } }; this.onEnterFrame = function() { //产生20条这样的灰色半透明的线 for (var r = 0; r<20; r++) { makeScratch("b_"+r, 100+r, 0x999999, random(60), random(Stage.width), random(Stage.height), random(10), random(200)); } }; 这段程序好像非常短小,其实却包括“动画片断函数原型的定义”这一重要知识点。在很多地方,动画经常要用到某个函数,而这个函数又属于动画片断之中,这样就可以采用Movieclip.prototype.原型名=function(…)的方式来自定义原型。当然了,这里的原型函数名可以自己随便写,完成定义后,在任何一个动画片断中就可任意使用这个自定义的函数了。 虽然自定义函数原型非常方便,但是大量地定义它会带来不良后果,因为每一个自定义的函数原型要占用一定的资源,如果大量定义的话,系统资源的消耗将增大,将会影响到其他程序的快速执行。
function makeScratch (name, n, color, alpha, x, y, radius, ratio) { with (this.createEmptyMovieClip(name, n)) { //画一条透明度为alpha的线 lineStyle(radius, color, alpha); moveTo(x, y); lineTo(x, y+(100/ratio)); } }; 其实也没有什么变化,只是函数的定义方式发生了一点小小的改变而已,执行的结果与上面一样。为了让大家看清楚,背景色特意没有设成黑色,而是采用了深灰色,如图2-6与图2-7所示。
图2-6 图2-7 2.2.2 往返光条效果在动画中有时为了增加动态的效果,可以在画面中加几个来回移动的透明光条,这些光条都具有下面的几个特征: 宽度可以来回变化,比如先从窄变宽,然后又可以再变回窄。在某个固定范围内来回移动。很多个这样的光条各自独立互不干扰。一般情况下,要制作这种效果,很多设计师都是采用一条条地逐个制作的方式来实现,制作起来工作量大,而且适应性差。有时在这个BANNER动画中制作好了,在另一个BANNER动画中因它们的宽度或者高度发生改变,要用时又得修改它,费时又费力。现在有一种办法,通过程序来生成这个效果,一次制作,无限次使用,一切将变得非常轻松。 首先我们制作一个最基本的无边框白色矩形的动画片断(MovieClip),如图2-8所示。
图2-8 矩形的高度与宽度分别是160与20,当然了,这两个值,可以根据自己的需要来定义,然后把它加到场景中。选中它,在Actions面板中加入下面代码: onClipEvent (load) { //设置小条的透明度为15 this._alpha = 15; //设置它的x起始位置是场景中的任意位置 this._x = random(Stage.width); //设置它的y位置是场景中的中心位置 this._y = Stage.height/2; this._xscale = random(50)+20; //设定小条在来回移动时最左边与最右边的位置 low = random(Stage.width*0.25); high = Stage.width*0.75+random(Stage.width*0.20); //设置一次移动的距离 move = 2*(3-random(6)); //小条移动距离不能为0 if (move == 0) { move = 3; } //设置小条的宽度变形 scale_move = 2*(3-random(6)); if (scale_move == 0) { scale_move = 3; } } onClipEvent (enterFrame) { this._x += move; this._xscale += scale_move; //小条的宽度比例不能太小,也不能太大 if (_xscale>200 or _xscale<20) { //宽度变化反向 scale_move = -scale_move; } //小条只能在它自己的左右范围内来回移动 if ((this._x>high and move>0) or (this._x<low and move<0)) { //移动反向 move = -move; } } 这样,一个可以自由往返的光条就制作完成了。 整个程序代码的核心就是通过正负move与scale_move的值来控制光条方向与宽度的变化。因为程序代码已与基本方块完全封装在了一起,所以在实际使用过程中光条的个数可以轻松控制,只需复制数个便可,运行的效果如图2-9及图2-10所示。 这种特效在很多广告BANNER中都可以用到。如果色彩感较好,还可以修改基本色块的颜色,甚至让每一块的颜色都不相同,产生出一种眩目的效果。
图2-9
图2-10 |
|||||
| 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
|
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | | |
| 版权所有:教师之家信息网 网站:http://www.edu910.net 备案号:黑ICP备06007963号 站长:阿东 |