收藏九域天地
九域天地友情链接
九域天地留言本
九域天地站点地图
      西安九域天地设计咨询网-VI/CI标志设计免费教程|平面广告设计教学文章|西安展示设计教程下载|室内装饰设计教程下载|多媒体动画制作在线教程文章|西安网站设计制作教程文章|招贴海报论坛教程|西安软件包装设计教程文章|西安展厅效果图设计教程|西安服装设计教程文章|西安公司标志设计|中国西安设计
   
西安九域天地设计咨询网-VI/CI标志设计免费教程|平面广告设计教学文章|西安展示设计教程下载|室内装饰设计教程下载|多媒体动画制作在线教程文章|西安网站设计制作教程文章|招贴海报论坛教程|西安软件包装设计教程文章|西安展厅效果图设计教程|西安服装设计教程文章|西安公司标志设计|中国西安设计
    当前位置:首页->设计相关->教程文章->多媒体动画设计文章    
   
 
西安九域天地设计咨询网-VI/CI标志设计免费教程|平面广告设计教学文章|西安展示设计教程下载|室内装饰设计教程下载|多媒体动画制作在线教程文章|西安网站设计制作教程文章|招贴海报论坛教程|西安软件包装设计教程文章|西安展厅效果图设计教程|西安服装设计教程文章|西安公司标志设计|中国西安设计
九域天地设计新闻
九域天地动向
设计相关文章
 
 
 
 
 
 
标志VI设计教程
Flash MX 编程深层次应用-初级特效(3)

2.2 画面特效(1)


画面特效是指那些通过程序自动生成的画面,或者在简单的画面制作之后通过程序来进行控制,从而完成那些用手工制作非常费时费力甚至是无法完成的特效,因而极大地加强了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

矩形的高度与宽度分别是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的值来控制光条方向与宽度的变化。因为程序代码已与基本方块完全封装在了一起,所以在实际使用过程中光条的个数可以轻松控制,只需复制数个便可
这种特效在很多广告BANNER中都可以用到。如果色彩感较好,还可以修改基本色块的颜色,甚至让每一块的颜色都不相同,产生出一种眩目的效果。

 

 第 041 篇  首篇 上一篇 下一篇 返回 
 
 
 
 
  西安九域天地设计咨询网-平面广告设计、VI/CI设计、 室内装饰设计、多媒体动画制作、网站设计制作、招贴海报设计、软件包装设计、展厅效果图设计、公司标志设计 中国西安设计  
九域天地自助链接   九域天地友情链接   九域天地创作团队   九域天地人才招聘   九域天地联系方式   九域天地在线咨询
西安九域天地设计咨询网-VI/CI标志设计免费教程|平面广告设计教学文章|西安展示设计教程下载|室内装饰设计教程下载|多媒体动画制作在线教程文章|西安网站设计制作教程文章|招贴海报论坛教程|西安软件包装设计教程文章|西安展厅效果图设计教程|西安服装设计教程文章|西安公司标志设计|中国西安设计
 
九域天地联系电话   写信给九域天地
 
多媒体设计教程 网站设计教程 平面广告设计教程 环境装饰设计教程 界面创意设计教程