[Flash动画制作实例教程]Flash AS打造转动3D小方块视觉特效

分类:Flash动画制作    发布时间:2017年06月01日    点击:1020次

[Flash动画制作实例教程]Flash AS打造转动3D小方块视觉特效


  其实也不算什么教程,只是代码的解释~我尽量写的详细一些~

  其实这个效果只有这些代码而已~把代码贴到第一帧就可以了~

  好,下面开始:

  stop();

  //这个stop是让FLASH播放在这一帧停下来,但对代码的运行没有影响~其实不用也没关系

  angle=-0.03;

  dot_x=Stage.width/2;

  dot_y=Stage.height/2;

  p=70;

  d=300;

  //先初始化一下变量~angle是立方体每次转过的角度,dot_x和dot_y定义了空间的原点,p是立方体边长的一半,d是眼

  //睛距离屏幕的像素

  sx=new Array(-p,p,p,-p,-p,p,p,-p);

  sy=new Array(-p,-p,-p,-p,p,p,p,p);

  sz=new Array(-p,-p,p,p,-p,-p,p,p);

  //这三个数组储存了立方体八个点的实际坐标

  tempx=new Array(8);

  tempy=new Array(8);

  //这两个数组用来存储立方体8个点在屏幕上的坐标

  function r(){

  for(i=0;i temp_x=sx*Math.cos(angle)-sz*Math.sin(angle);

  temp_z=sx*Math.sin(angle) sz*Math.cos(angle);

  //这个是用来计算立方体在转动时八个点的坐标

  sx=temp_x;

  sy=sy;

  sz=temp_z;

  //要这样赋值一下~否则立方体会越转越长

  tempx=(sx/(sz d))*d dot_x;

  tempy=(sy/(sz d))*d dot_y;

  //这个是用来将立方体的实际坐标转化成屏幕的坐标,不懂的可以参考一下计算机图形学的书

  }

  _root.createEmptyMovieClip("lines", 1);

  lines.lineStyle(1, 11111111, 100);

  lines.moveTo(tempx[0],tempy[0]);

  lines.lineTo(tempx[1],tempy[1]);

  lines.lineTo(tempx[2],tempy[2]);

  lines.lineTo(tempx[3],tempy[3]);

  lines.lineTo(tempx[0],tempy[0]);

  lines.lineTo(tempx[4],tempy[4]);

  lines.lineTo(tempx[5],tempy[5]);

  lines.lineTo(tempx[6],tempy[6]);

  lines.lineTo(tempx[7],tempy[7]);

  lines.lineTo(tempx[4],tempy[4]);

  lines.moveTo(tempx[1],tempy[1]);

  lines.lineTo(tempx[5],tempy[5]);

  lines.moveTo(tempx[2],tempy[2]);

  lines.lineTo(tempx[6],tempy[6]);

  lines.moveTo(tempx[3],tempy[3]);

  lines.lineTo(tempx[7],tempy[7]);

  _root.removeMovieClip("lines");

  //上面的这一堆东西是用来把算出来的立方体的点用线连起来~其实可以优化一下的

  updateAfterEvent();

  //更新一下

  }

  setInterval(r,5);

  //每隔5毫秒运行一次函数r()

  终于写完了哈

  " /> 写的不好~请见谅`~再发一次效果,嘿嘿

天空蓝动漫星空Flash动画制作:027-82730702;82720703

推荐阅读:

《Killing Bites》动画化 兽娘之间的激情格斗

三维建筑动画:化工厂区三维动画制作

《王室教师海涅》4月4日开播 国王登场帅炸天

最近发表
标签列表