萬盛學電腦網

 萬盛學電腦網 >> 圖文處理 >> Flash教程 >> FlashCS4中制作漂亮的氣泡動畫教程

FlashCS4中制作漂亮的氣泡動畫教程

   FlashCS4中制作漂亮的氣泡動畫,是考試中必考的試題,本文對FlashCS4中制作漂亮的氣泡動畫 教程進行了具體闡述供閱讀。大家請仔細閱讀下文!

  詳細代碼:

  function ball(r:int):MovieClip {//自定義函數 ball,參數為 r,整數型,返回值為 MovieClip

  var col:uint=0xffffff*Math.random();//聲明一個無符號整數型變量 col,獲取任意顏色

  var sh:MovieClip=new MovieClip();//聲明一個影片剪輯類實例 sh

  sh.graphics.beginGradientFill(GradientType.RADIAL, [0xffffff,col,col],[0.5,1,1],[0,200,255]);//在 sh 中設置漸變填充樣式(放射狀漸變,顏色,透明度,色塊位置)

  sh.graphics.drawCircle(0,0,r);//在 sh 中畫圓(圓心坐標(0,0),半徑為參數r)

  sh.graphics.endFill();//結束填充

  return sh;//返回 sh

  }

  var ballArr:Array=[];//聲明一個空數組 ballArr

  for (var i:int=0; i<10; i++) {//創建一個 for 循環,循環 10次

  var balls:MovieClip=ball(Math.random()*20+20);//聲明一個影片剪輯類實例balls,調用函數 ball(參數r 半徑的值為 20-40 之間的隨機值)

  addChild(balls);//把 balls添加到顯示列表

  balls.x=Math.random()*(stage.stageWidth-balls.width)+balls.width/2;//balls 的 X 坐標

  balls.y=Math.random()*(stage.stageHeight-balls.height)+balls.height/2;//balls 的 Y坐標,使它出現在舞台的任意位置

  balls.vx=Math.random()*2-1;//為 balls 設置自定義屬性 vx,數值為-1-1 之間的隨機數,表示 X 方向的速度

  balls.vy=Math.random()*2-1;//為 balls 設置自定義屬性 vy,數值為-1-1 之間的隨機數,表示 Y 方向的速度

  ballArr.push(balls);//把 balls 添加到數組 ballArr 中

  }

  addEventListener(Event.ENTER_FRAME,frame);//添加幀頻事件偵聽,調用函數 frame

  function frame(e) {//定義幀頻事件函數 frame

  for (var i:int=0; i

  var balls:MovieClip=ballArr[i];//聲明一個影片剪輯類實例 balls,獲取數組 ballArr 的元素

  balls.x+=balls.vx;//balls的 X 坐標每幀增加balls.vx

  balls.y+=balls.vy;//balls的 Y 坐標每幀增加balls.vy

  if (balls.x

  balls.x=balls.width/2;//balls 的 X坐標獲取balls 寬度的一半

  balls.vx*=-1;//balls.vx 獲取它的相反數

  }

  if (balls.x>stage.stageWidth-balls.width/2) {//如果 alls 出了舞台右邊緣

  balls.x=stage.stageWidth-balls.width/2;//balls 的 X 坐標獲取場景寬度與 balls 寬度一半的差

  balls.vx*=-1;//balls.vx 獲取它的相反數

  }

  if (balls.y

  balls.y=balls.height/2;//balls 的 Y坐標獲取 balls 高度的一半

  balls.vy*=-1;//balls.vy 獲取它的相反數

  }

  if (balls.y>stage.stageHeight-balls.height/2) {//如果 balls 出了舞台下邊緣

  balls.y=stage.stageHeight-balls.height/2;//balls 的 Y 坐標獲取舞台高度與 balls 高度一半的差

  balls.vy*=-1;//balls.vy 獲取它的相反數

  }

  }

  for (var j:int=0; j

  var ball0:MovieClip=ballArr[j];//聲明一個影片剪輯類實例 ball0,獲取數組 ballArr 的元素

  for (var m:int=j+1; m

  var ball1:MovieClip=ballArr[m];//聲明一個影片剪輯類實例 ball1,獲取數組 ballArr 的元素

  var dx:Number=ball1.x-ball0.x;//聲明一個數值型變量 dx,獲取

  var dy:Number=ball1.y-ball0.y;//聲明一個數值型變量 dy,獲取

  var jl:Number=Math.sqrt(dx*dx+dy*dy);//聲明一個數值型變量 jl,獲取小球的距離

  var qj:Number=ball0.width/2+ball1.width/2;//聲明一個數值型變量獲取小球半徑之和

  if (jl<=qj) {//如果 jl 小於等於 qj

  var angle:Number=Math.atan2(dy,dx);//聲明一個數值型變量angle,獲取ball1 相對於 ball0 的角度

  var tx:Number=ball0.x+Math.cos(angle)*qj*1.01;//聲明一個數值型變量 tx,獲取目標點的 X坐標

  var ty:Number=ball0.y+Math.sin(angle)*qj*1.01;//聲明一個數值型變量 ty,獲取目標點的 Y坐標

  ball0.vx=- (tx-ball1.x);//ball0 在X 方向的速度

  ball0.vy=- (ty-ball1.y);//ball0 在Y 方向的速度

  ball1.vx=(tx-ball1.x);//ball1 在 X方向的速度

  ball1.vy=(ty-ball1.y);//ball1 在 Y方向的速度

  小編為大家編輯的FlashCS4中制作漂亮的氣泡動畫 希望對大家有所幫助!

copyright © 萬盛學電腦網 all rights reserved