WEB开发网
开发学院图形图像Flash Flash 8 光影变换效果 阅读

Flash 8 光影变换效果

 2007-01-13 10:56:03 来源:WEB开发网   
核心提示: onEnterFrame循环来控制移动://通过onEnterFrame循环,来让粒子移动.mc.onEnterFrame=function(){this.tx+=this.xtempo;this.ty+=this.ytempo;this._x=this.x0+Math.sin(this.

onEnterFrame循环来控制移动:

//通过onEnterFrame循环,来让粒子移动.
  mc.onEnterFrame=function(){
    this.tx+=this.xtempo;
    this.ty+=this.ytempo;
    this._x=this.x0+Math.sin(this.tx)*this.xd;
    this._y=this.y0+Math.cos(this.ty)*this.yd;
  };

在这段代码中,通过将前面定义的动态属性,应用在onEnterFrame循环中,起到决定性作用.

this._x=this.x0+Math.sin(this.tx)*this.xd;
this._y=this.y0+Math.cos(this.ty)*this.yd;

其中this.tx,this.ty,this.xd,this.yd.均为前面定义的动态属性。我们使用了sin()和cos ()方法是为了使每个粒子自身有一个环形的运动路线。

Ok.在整段代中,我们看到使用融合模式blendmode只有一行,但在这里它显得尤为重要,加上与去掉效果是截然不同的。

现在你就可以测试你的影片了。

接下来我们要在上面的基础上进行一下变化。看看效果会有什么不同。

我们现在要增加粒子的大小和范围。代码做如下的修改。

//定义中心位置
varcx=0;
varcy=0;
//设定循环20次,准备从库中复制链接id为partical的影片.
for(vari=0;i<100;i++){
  //复制影片剪辑,引用名称为mc.
  varmc=this.attachMovie("partical","p"+i,i);
  with(mc){
    //初始化影片剪辑的位置,注意此时cx,cy是用来调整mc实例的偏移位置的.
    _x=cx+Math.random()*590;
    _y=cy+Math.random()*350;
    _xscale=_yscale=100*Math.random()*5+1;
  }
  //针对mc应用融合模式类型"add"
  mc.blendMode="add";
  //设定mc实例的角度随机值
  mc.tx=random(360);
  mc.ty=random(360);
  //设定用于mc角度的增量随机值
  mc.xtempo=Math.random()/10;
  mc.ytempo=Math.random()/10;
  //设定mc实例的速度随机值
  mc.xd=Math.random()*10+1;
  mc.yd=Math.random()*10+1;
  mc.x0=mc._x;
  mc.y0=mc._y;
  //跳转到指定的帧,以变换不同颜色的小球上.
  mc.gotoAndStop(random(5)+1);
  //通过onEnterFrame循环,来让粒子移动.
  mc.onEnterFrame=function(){
    this.tx+=this.xtempo;
    this.ty+=this.ytempo;
    this._x=this.x0+Math.sin(this.tx)*this.xd;
    this._y=this.y0+Math.cos(this.ty)*this.yd;
  };
  
}

斜体加粗的代码是我们所修改的位置,我们增加了粒子的数量,同时加入了_xscale._yscale.缩放的随机值,这样便会放大粒子增加粒子的重合度。效果如下:

上一页  1 2 3 4 5  下一页

Tags:Flash 光影 变换

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接