WEB开发网
开发学院图形图像Flash Flash与3D编程探秘(一)- Flash与3D空间 阅读

Flash与3D编程探秘(一)- Flash与3D空间

 2008-11-12 11:51:18 来源:WEB开发网   
核心提示: 5. 下面这个函数,在每一次执行,Flash与3D编程探秘(一)- Flash与3D空间(4),都会把小球移动到相应的位置,并且对小球进行缩放,让第5步我们写的函数循环执行,发布看一下,当小球的z大于600时,我们让它向相反的方向移动

5. 下面这个函数,在每一次执行,都会把小球移动到相应的位置,并且对小球进行缩放。当小球的z大于600时,我们让它向相反的方向移动。当小球的z_3d值变化后,我们计算小球当前的大小和位置,把小球移动到相应的位置然后对其进行缩放,这样在一连串的函数执行后,我们就会得到动画效果。代码里scale代表物体应该缩放的比率,因为当物体沿z轴移动的时候,物体的大小以及x和y值都会改变。所以我们要计算出这个比率,那么我们才能把物体缩放到合适的大小并且把物体移动到相应的Flash 2D空间位置。

functionrun(e:Event)
{
  for(vari=0;i<scene.numChildren;i++)
  {
    scene.getChildAt(i).z_3d+=scene.getChildAt(i).speed*scene.getChildAt(i).direction;
    if(scene.getChildAt(i).z_3d>600)
    {
      scene.getChildAt(i).z_3d=600;
      scene.getChildAt(i).direction=-1;
    }
    elseif(scene.getChildAt(i).z_3d<0)
    {
      scene.getChildAt(i).z_3d=0;
      scene.getChildAt(i).direction=1;
    }
    
    varscale=focal_length/(focal_length+scene.getChildAt(i).z_3d);
    scene.getChildAt(i).x=scene.getChildAt(i).x_3d*scale;
    scene.getChildAt(i).y=scene.getChildAt(i).y_3d*scale;
    scene.getChildAt(i).scaleX=scene.getChildAt(i).scaleY=scale;
  }
}

6. 最后,在舞台上添加一个函数循环响应时间。让第5步我们写的函数循环执行。发布看一下,现在小球在3D舞台上移动了。

上一页  1 2 3 4 5 6  下一页

Tags:Flash 编程 探秘

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