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

3.3 虚幻特效(1)


在Flash MX特效中,虚幻的影像、复杂的粒子系统、激情的火焰、跳动的波浪都属于一种虚幻的内容。一

般来说,在矢量动画中是很难制作出这种效果的,但是Flash MX编程在绘图方面的加强,使这些效果的实现

成为可

能,下面将介绍两个这方面的例子。在Flash MX中仍然没有增加对3D的支持,所以对3D物体的操作只能靠

程序来完成,在第三个实例中讲述了一个3D物体旋转的应用,它对广大程序员来说是一个极好的范例。

3.3.1 虚幻实境
现在介绍一个程序技巧要求不高,但却要求编程人员有非凡想像力的特效——虚拟实境。这个特效原理非常

简单,首先产生出一批用来控制的点,然后用这些点画出一个封闭的区域,然后以随机色、透明度为3的方式进行

填充。在产生一批这样的区域后,将这些区域随机放置、叠加,就创造出一个真实而又虚幻的特效。请看

下面的代码://在低分辨率下运算会快些,才能产生出朦胧美

_quality = "LOW";

//产生8个用来控制的点

for (i=1; i<=8; i++) {

_root.createEmptyMovieClip("point"+i, i+10);_root["point"+i]._x = Stage.width/2;

_root["point"+i]._y = Stage.height/2;//控制点的位置在正负5个点之内变化

_root["point"+i].xVel = Math.floor(Math.random()*10)-5;_root["point"+i].yVel = ath.floor(Math.

random()*10)-5;

_root["point"+i].onEnterFrame = function() {this._x += this.xVel;

this._y += this.yVel;//这两句保证控制点在超出视野时就要回头反向移动this._x<0 || his._x>S

tage.width ? this.xVel *= -1 : this.xVel;this._y<0 || this._y>Stage.height ? this.yVel *= -1

: this.yVel;

};

}

//定义随机颜色values = new Array("0", "2", "4", "6", "8", "A", "C", "D");_root.hexColor="0x"+values[Math.floor(Math.random()*values.length)]

+values[Math.floor(Math.random()*values.length)]+values[Math.floor(Math.random()*values.leng

th)]+values[Math.floor(Math.random()

*values.length)]+values[Math.floor(Math.random()*values.length)]+

values[Math.floor(Math.random()*values.length)];

//产生变形

i = 1;

_root.onEnterFrame = function() {

name = "dongua_shape_"+i;

_root.createEmptyMovieClip(name, i+20);

_root[name].beginFill(_root.hexColor, 3);

_root[name].moveTo(_root.point1._x, _root.point1._y);

_root[name].curveTo(_root.point2._x,_root.point2._y, _root.point3._x, _root.point3._y);_root[name].curveTo(_root.point4._x,_root.point4._y, _root.point5._x, _root.p

oint5._y);

_root[name].curveTo(_root.point6._x,_root.point6._y, _root.point7._x, _root.point7._y);

_root[name].curveTo(_root.point8._x,_root.point8._y, _root.point1._x, _root.point1._y);_root[n

ame].endFill();

//移去以前的区域,仅保留最新的50个区域

removeMovieClip(_root["dongua_shape_"+(i-50)]);

i++;

};

这个特效最核心的地方就是每个独立区域的透明度不高,但是当两个透明度为3的地方叠加时,在叠加位置的

透明度就变成了6,n个透明叠加之后其相应位置透明效果就为3×n。由于区域是随机的,因此叠加的地方也

是随机的。不但出来的效果随机了,而且画面还会有一种渐变的层次感,从而产生了超酷的效果!说句实在话

,自己都不相信这么短的一段代码可以产生出这么酷的效果。


在制作这个效果初期,先是将这些区域放在一个MC中,然后做了一个定时器,当时间一到就让这个MC的透明度

降低直至为0,然后再重新开始新的效果。但是实际演示时,发现这种透明度渐变效果根本不连续,甚至连颜色

看上去都有点变化,无法达到理想的效果。解决此问题时可以采用前面特效用到的把不同的区域放到不同的MC

的办法,然后不断产生出新的区域,又同时消除以前的区域,保证在画面上只有固定个数的填充区域,一运行

,效果非常理想。通过这个例子可以说明一个道理,就是编程在很多地方是相通的,在这个地方用到的思路也

可以在另一个地方用到,由于核心思想不同,出来的效果也就不相同了。

 

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