AS2.0出色特效之位图的飘动

2008-04-02 11:02:32来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  椭圆参数方程,是动画编程中很常用的一种技术,能够制作很多实用的效果,例如旗帜飘动的效果,本例中随着鼠标的移动,位图就像一面旗帜随风飘动。

  

  


  下面我们就来学习如何使用这种技术。

  一. 相关参数讲解

  制作这个实例首先要了解椭圆的参数方程的使用,下面就对其算法作个简单的剖析。

  1.单个mc(影片剪辑)在椭圆上的运动的处理方法

  

  图1

  黑点表示一个mc,radian表示数学中的弧度,从x正半轴开始,按逆时针方向旋转一周为2π,通过弧度和椭圆的参数方程来计算mc的坐标,如图1所示,具体表示方法(注:*表示代码中的乘号):mc._x=a*Math.cos(radian);

  mc._y=b*Math.sin(radian);

  a、b分别是椭圆在x、y坐标轴上的载距,代表椭圆的大小, radian不断递增即可实现mc坐标的变化,使mc在椭圆上的运动。椭圆的中央坐标为(0,0)。要平移椭圆,把mc的坐标加上中央坐标(cen_x,cen_y),具体表示方法:

  mc._x=a*Math.cos(radian) cen_x;

  mc._y=b*Math.sin(radian) cen_y;

  2、多个mc分布在椭圆上的处理方法

  

  图2

  

假如是多个mc分布在椭圆上,情况又会不同,如图2所示。以均匀分布在椭圆上为例,一个圆周为p=2π,且有num=4个mc,这些mc的弧度如下表所示:

  



  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  


  
mc


  
mc1


  
mc2


  
mc3


  
mc4


  
弧度值


  
π/2


  
π


  
3π/2


  
2π或0


  
计算方法


  
P/4*1


  
P/4*2


  
P/4*3


  
P/4*4


  从表格的第二行可看出,四个mc的间距是p/4=π/2。第三行是这些弧度的计算方法:间距乘上一个数值。用num代替4,用一个变量j代替数值,就可算出num个mc的弧度值,继而求出mc的坐标。如下所示:

  for(var j=1;j<=num;j ){

   var radian= p/num*j; //两个mc的间距乘上j即每个mc的弧度

   this[“mc” j]._x=a*Math.sin(radian);

   this[“mc” j]._y=b*Math.cos(radian);//通过弧度值计算每个mc的坐标

  }

  假如要分布在半个椭圆,或以一定的间距分布在椭圆的一部分,只要改变两个mc的间距弧度。

  3、mc属性的配置方法

  为符合透视规律,要配置mc的属性:透明度、深度等,如图2中mc1的透明度最小,mc2和mc4次之,mc3最大,其他的属性的变化规律和透明度相同。而这些mc都是沿着椭圆运动的,所以要根据mc实时的位置来配置mc的属性。最简单的方法是用mc的y坐标,他的变化规律符合上述特征。还可用mc的x坐标、mc的弧度、mc到椭圆中央的距离等,但必须转换。下面以mc的x坐标为例:

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: Flash中关于过场的一些想法和简单的教程

下一篇: Flash技巧学习:容易忽略的预载