注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

清风明月

荡荡君子心,习习两袖风……

 
 
 

日志

 
 

flash 雪花制作代码  

2011-07-21 09:43:45|  分类: flash制作代码 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

flash 雪花制作代码:

fallSnow(this, 100, [550, 400]);

      function fallSnow(path, num, size) {

      for (var i = 0; i<num; i++) {

      path.createEmptyMovieClip("s"+i, i);

      var mc = path["s"+i];

      mc._x = random(size[0]);

      mc._y = random(size[1]);

      mc.ro = [1, -1][random(2)];

      mc.xtime = random(20);

      mc.startTime = 0;

      mc.id = Math.pow(i, 1/2);

      createSnow(mc, mc.id/2.5, "0xffffff", 20*mc.id);

      }

      var loop = function () {

      updateAfterEvent();

      for (var i = 0; i<num; i++) {

      var mc = path["s"+i];

      mc._rotation += mc.ro*5;

      mc._x += mc.id*mc.ro/10;

      mc._y += mc.id/2;

      mc.startTime++;

      scanTar(mc);

      scanEdge(mc, size);

      }

      };

      var interval = setInterval(loop, 10);

      }

      function createSnow(mc, radius, c, alpha) {

      with (mc) {

      moveTo(0, -radius);

      beginFill(c, alpha);

      lineStyle(0, "0x000000", 0);

      for (var i = 1; i<=6; i++) {

      var a1 = -Math.PI/6+i*Math.PI/3;

      var a2 = i*Math.PI/3;

      lineTo((radius/5)*Math.sin(a1), -(radius/5)*Math.cos(a1));

      lineTo(radius*Math.sin(a2), -radius*Math.cos(a2));

      }

      endFill();

      }

      }

      function scanTar(mc) {

      if (mc.startTime>=mc.xtime) {

      mc.startTime = 0;

      mc.xtime = random(20);

      mc.ro = [1, -1][random(2)];

      }

      }

      function scanEdge(mc, size) {

      if (mc._x>size[0]) {

      mc._x = 0;

      } else if (mc._x<0) {

      mc._x = size[0];

      }

      if (mc._y>size[1]) {

      mc._y = 0;

      }

      }

这个下雪动画是全代码实现的,要看懂必须具备相当水平的编程能力,群众包含了程序设计中的对象,方法,数组,函数,循环等等的应用,还应用代码控制每个雪花(实际是白点)的深度,透明度,漂移量(x坐标变量),下落速度(y坐标变量),......

        如果你没有一定的程序员基础,我就是逐行代码解释后,你也不一定能明白,我还是帮你解决问题更实际一些:

上面代码的地19——20两行,分别是控制雪花漂移量和下落速度的,其中

mc._x += mc.id*mc.ro/10;

控制雪花漂移量,例如你可以试着改为:

mc._x += mc.id*mc.ro/5;

则雪花的漂移量增大,如果改为:

mc._x += mc.id*mc.ro/100;

则基本看不到雪花的漂移,......

 

mc._y += mc.id/2;

控制雪花下落速度,例如你可以试着改为:

mc._y += mc.id/1.2;

则雪花的下落速度加快,如果改为:

mc._y += mc.id/5;

则雪花的下落速度减慢很多.....,

  评论这张
 
阅读(589)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017