FlashAS实现的一种不规则曲线运动

2008-04-02 10:56:54来源:互联网 阅读 ()

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


  记得刚开始学AS的时候!就请教过很多人这方面的AS!但效果总是不理想!这几天没事看了看数学资料找到了意外的收获呀!和大家一起分享!看来数学还是很重要的!只怪当然对这科不感冒,没用心学呀!呵呵呵。

  演示效果:(鼠标单击动画之后不放开试试会看到什么?)

  

  


  第一帧:

  
x=0

  i=0

  //lovex和lovey两个数组分别保存LOVE这个字的主要坐标!

  lovex=newArray(175,175,175,175,175,195,215,235,255,255,255,275,295,315,315,315,295,275,325,325,325,340,355,37

  0,385,385,385,405,425,445,465,405,405,425,445,465,405,405,425,445,465)

  lovey=newArray(168,188,208,228,248,248,248,248,188,208,228,248,248,228,208,188,168,168,168,188,208,228,248,22

  8,208,188,168,168,168,168,168,188,208,208,208,208,228,248,248,248,248)

  its0.itlovex=lovex[0]//在虫0下定一个变量保存按下鼠标后虫0的X坐标

  its0.itlovey=lovey[0]//在虫0下定一个变量保存按下鼠标后虫0的y坐标


  第二帧

  
x


  第三帧

  
if(x<41){

  its0.duplicateMovieClip("its" x,x)//复制40个小虫个

  this["its" x].itlovex=lovex[x]//在虫x下定一个变量保存按下鼠标后虫x的X坐标

  this["its" x].itlovey=lovey[x]//在虫x下定一个变量保存按下鼠标后虫x的y坐标

  gotoAndPlay(2)

  }else{

  stop()

  }


  虫子its0这个MC上代码:

  
onClipEvent(load){//加载时设定初始值

  ang=Math.random();//随机产生虫子的初始弧度值

  incr=Math.random()/100;//随机产生虫子的弧度值增量

  aimx=random(600)-300;//随机产生两个虫子的椭圆运动长短半径,范围根据您FLASH的尺寸来设,我的是600*400中央点是(3

  00,200)

  x=random(600)-300;

  aimy=random(400)-200

  y=random(400)-200;

  xy=random(200)-100;//随机产生虫子中央偏位值

  _xscale=_yscale=_yscale*(Math.random() .1);//随机产生虫子大小比例

  由于考虑到按鼠标后字体的美观,暂时没有用

  }

  onClipEvent(mouseDown){_root.i=1}

  onClipEvent(mouseUp){_root.i=2}

  onClipEvent(enterFrame){

  if(_root.i==1){//当i==1时即按下鼠标时虫子移动到LOVE指定的点

  _x=_x (itlovex-_x)/10;

  _y=_y (itlovey-_y)/10;

  }

  if(_root.i==2){//当i==2时即按下鼠标时虫子移回按下鼠标前的位置

  ix=Math.cos(ang)*x 300 xy//计算按下鼠标前虫子的位置

  iy=Math.sin(ang)*y 200 xy

  _x=_x (ix-_x)/5;//移动虫子到按下鼠标前的位置

  _y=_y (iy-_y)/5;

  if(Math.abs(ix-_x)<=1andMath.abs(iy-_y)<=1){_root.i=0;}//当虫子接近(ix,iy)即回到按下鼠标前的位置时,设i=0

  }

  if(_root.i==0){//当i==0时即没有鼠标动作时

  x=x (aimx-x)/150;//根据两个随机长短半径差值计算出虫子的长短半径

  y=y (aimy-y)/150;

  _x=Math.cos(ang)*x 300 xy;//计算虫子的椭圆运动的轨迹

  _y=Math.sin(ang)*y 200 xy;

  ang=ang incr;//弧度递增

  }

  }


标签:

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

上一篇: FlashMX特效之扩散和挤压

下一篇: 灵活运用用第3方软件把“SWF”变回“FLA”