您现在的位置: 圆点视线 >> 教程 >> flash教程 >> 实例教学 >> 文章正文
[图文]用Flash AS代码制作美丽光影变幻动画           ★★★
用Flash AS代码制作美丽光影变幻动画
作者:hairan  文章来源:天极  点击数:  更新时间:2008-3-30 10:25:43 
 页面功能:【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口 【字体:

用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只有一行,但在这里它显得尤为重要,加上与去掉效果是截然不同的。

  现在你就可以测试你的影片了。
  接下我们要在上面的基出上进行一下变化。看看效果会有什么不同。
  我们现在要增加粒子的大小和范围。代码做如下的修改。

  代码:

//定义中心位置 
var cx = 0;
var cy = 0;

//设定循环20次,准备从库中复制链接id为partical的影片.
for (var i = 0; i<100; i++) {
    //复制影片剪辑,引用名称为mc.
    var mc = 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.缩放的随机值,这样便会放大粒子增加粒子的重合度。效果如下。

Flash8_Blendmode制作美丽光影变幻动画_天极设计在线整理

  接下来我们在这段代码的基础上在次进行修改。我们此次要变换一下融合模式,就会得到不同的效果。如下代码。

  代码:

//定义中心位置 
var cx = 0;
var cy = 0;
//设定循环20次,准备从库中复制链接id为partical的影片.
for (var i = 0; i<100; i++) {
    //复制影片剪辑,引用名称为mc.
    var mc = this.attachMovie("partical", "p"+i, i);
    with (mc) {
        //初始化影片剪辑的位置,注意此时cx,cy是用来调整mc实例的偏移位置的.
        _x = cx+Math.random()*590;
        _y = cy+Math.random()*350;
        _xscale = _yscale = 140 * Math.random()*5+1;
    }
    //针对mc应用融合模式类型"add"
    mc.blendMode = "hardlight";
    mc.cacheAsBitmap = true;
    //设定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;
    };
    
}

  斜体加粗的代码为我们所修改过的位置,我们增大了缩放,同时将融合模式换成了hardlight.当然你可以试一下其它的融合方式,同时我们增加了mc.cacheAsBitmap = true.通过这一句是加速我们的影片剪辑的运算速度。测试的效果如下。

/imagelist/2007/326/8174i43752b6.swf

上一页  [1] [2] [3] 

 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 文章录入:hairan    责任编辑:hairan  【字体:
 
  • 上一篇文章:

  •  
  • 下一篇文章: 没有了
  • 最新文章
    相关文章
    Flash实现随机加载外部图片的制作方法
    创建Flash站点的十大可用性技巧
    Flash制作圆形路径运动动画的技巧
    用Flash制作简单的飞鸟动画
    Flash技巧:常见水波动画制作全攻略
    Flash制作漂亮的三重卷动相册特效动画
    FLASH简单制作探照灯效果
    从Flash中导出透明背景的GIF动画
    用JS和CSS打造选项卡效果
    FLASH制作闪光文字
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
     姓  名: 评 分: 1分 2分 3分 4分 5分
     评论内容: ·严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
    ·用户需对自己在使用本网服务过程中的行为承担法律责任
    ·本站管理员有权保留或删除评论内容。
    ·评论内容只代表机友个人观点,与本网站立场无关。
     
    最 新 推 荐
     
    百度主题推广
    最 新 热 门