Flash AS實現的一種不規則曲線運動

來源:互聯網
上載者:User

  記得剛開始學AS的時候!就請教過很多人這方面的AS!但效果總是不理想!這幾天沒事看了看數學資料找到了意外的收穫呀!和大家一起分享!看來數學還是很重要的!只怪當然對這科不感冒,沒用心學呀!呵呵呵。 

  演示效果:(按一下滑鼠動畫之後不放開試試會看到什嗎?)

點擊這裡下載源檔案

第一幀: x=0
i=0
//lovex和lovey兩個數組分別儲存LOVE這個字的主要座標!
lovex=new Array(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=new Array(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)<=1 and Math.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;//弧度遞增
 }
}

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。