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

3.2 综合特效(2)


3.2.2 血管特效
在Flash MX中,很多特效都是与画线功能分不开的,这一点说明了Macromedia公司在Flash MX中加入一些简单绘图功能之后,可制作的内容变得丰富起来,效果也可以变得非常奇妙。下面这个特效就是直接使用画线功能,通过合理安排画线的颜色与位置之后,产生出一个真实的血管网状图效果。具体程序如下:

Stage.scaleMode = "noScale";

this._x = this._y=200;

this.onEnterFrame = function() {

//最多产生1000根血管线

if (++time<1000) {

//血管生长的角度,在上一次生长角度正负25度之间波动

t += (Math.PI/180*(25-random(50)));

//血管的长度是20-50

len = random(30)+20;

//根据上次血管的位置计算新血管的位置,让血管可以无限延伸

this._x -= ((x1=x+len*Math.sin(t))-x);

this._y -= ((y1=y+len*Math.cos(t))-y);

//用一种随机深红色来画血管

this.lineStyle(3, "0x"+(random(102)+51).toString(16)+"0000", 50);

this.lineTo((x=x1), (y=y1));

//以20%的概率画血管的分支

if (random(100)<=20) {

branch(x, y, t);

}

}

};

function branch(x, y, t) {

_root.createEmptyMovieClip("branch"+(++bc%1000), bc);

_root["branch"+bc]._x = x;

_root["branch"+bc]._y = y;

//分支血管的角度

_root["branch"+bc].t = t;

_root["branch"+bc].onEnterFrame = function() {

//让分支角度在正负30度之间变动

this.t += (Math.PI/180*(30-random(60)));

//长度是20~50之间

this.len = random(30)+20;

//比主血管细一些,线只有一个点的宽度

this.lineStyle(1, "0x"+(random(150)+100).toString(16)+"0000", 50);

this.x += this.len*Math.sin(this.t);

this.y += this.len*Math.cos(this.t);

this.lineTo(this.x, this.y);

//有的细血管长,有的短,通过删除时间早晚不同的方式来控制

//为了节约系统资源,在停止画分支时要清除它的onEnterframe事件函数

if (++this.n>random(15)+15) {

delete this.onEnterFrame;

}

};

}

这个血管特效的原理就是通过程序不断地画出新的线段,然后这个线段就把前面已经画好的对象往前推动相应的距离,然后程序在适当的时候产生一个相对短小一点的分支线段,如此这般反复地产生,反复地推进,就出现了这个特别的效果。

为了便于大家理解,程序中前面部分专门增加了if (++time<1000)语句,如果读者看不懂程序的运行,可以把这里的1000改成5到10之间比较小的数值,看看运行的结果如何。看过这个结果之后,很多不明白之处应该可以迎刃而解了。最后让我们看看正常的程序运行是什么效果,图3-10是将血管推出去的效果

 

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