新闻中心
全册教案
教学教案
家校连线
教师之家
开心一刻
信息技术
课件制作
成语解释
网站首页 | 教育论文 | 精品课件 | 评课说课 | 板书设计 | 工作总结 | 学生园地 | 公务公文 | 工作计划 | 复习试题 | 辅导资料 |
您现在的位置: 教师之家 >> 课件制作 >> Flash_MX >> 文章正文 用户登录 新用户注册
[组图]ActionScript初级特效制作:画面特效(1)       ★★★ 【字体:
ActionScript初级特效制作:画面特效(1)
作者:佚名    文章来源:本站原创    点击数:    更新时间:2006-8-26    
画面特效是指那些通过程序自动生成的画面,或者在简单的画面制作之后通过程序来进行控制,从而完成那些用手工制作非常费时费力甚至是无法完成的特效,因而极大地加强了Flash动画的效果。

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)的方式来自定义原型。当然了,这里的原型函数名可以自己随便写,完成定义后,在任何一个动画片断中就可任意使用这个自定义的函数了。


虽然自定义函数原型非常方便,但是大量地定义它会带来不良后果,因为每一个自定义的函数原型要占用一定的资源,如果大量定义的话,系统资源的消耗将增大,将会影响到其他程序的快速执行。

当然了,这个效果如果不用面向对象的编程来写,而采用普通的函数来写也是可行的。onEnterFrame部分不变,函数原型定义部分程序改写成函数定义,代码如下:

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

矩形的高度与宽度分别是16020,当然了,这两个值,可以根据自己的需要来定义,然后把它加到场景中。选中它,在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;

    }

}

这样,一个可以自由往返的光条就制作完成了。

整个程序代码的核心就是通过正负movescale_move的值来控制光条方向与宽度的变化。因为程序代码已与基本方块完全封装在了一起,所以在实际使用过程中光条的个数可以轻松控制,只需复制数个便可,运行的效果如图2-9及图2-10所示。

这种特效在很多广告BANNER中都可以用到。如果色彩感较好,还可以修改基本色块的颜色,甚至让每一块的颜色都不相同,产生出一种眩目的效果。


2-9

2-10

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    Google
     
    互联网 教师之家
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 |