發新話題

Flash製作實例 - 《網頁製作技巧》反彈球

Flash製作實例 - 《網頁製作技巧》反彈球

●預覽成品:兩個小球在畫面裡以直行方式移動著,一旦碰到畫面的邊界就會反彈90度,往另一個方向繼續直行移動,就像是一個小皮球在密閉的房間裡不斷彈跳一般。

訪客無法瀏覽此圖片或連結,請先 註冊登入會員


●逐步說明:
  1)新增影片片段ball1和ball2,並把它們拖動到工作區中的適當位置。最後建立程序如圖所示:

  background層上放的是場景的背景,ball層中放的是影片片段ball1和ball2(左上角的球體為ball1,右上角的球體為ball2),action層是控制層。下面我們詳細分析action層是怎麼控制球體運動的。
  2)第1個影幀設定的Actions為:

  這裡定義了四個變量,也就是每次所要移動的「X」距離和「Y」距離。
  第2個影幀設定的Actions為:

  Set Variable: "x1" = GetProperty ("/ball1",_x )
  Set Variable: "y1" = GetProperty ("/ball1",_y )
  If (x1 >= 340)
   Set Variable: "move_x1" = -(move_x1)
  Else If (x1<=10)
   Set Variable: "move_x1" = -(move_x1)
  End If
  If (y1 >= 190)
   Set Variable: "move_y1" = -(move_y1)
  Else If (y1<=10)
   Set Variable: "move_y1" = -(move_y1)
  End If
  Set Variable: "x2" = GetProperty ("/ball2",_x )
  Set Variable: "y2" = GetProperty ("/ball2",_y )
  If (x2 >= 340)
   Set Variable: "move_x2" = -(move_x2)
  Else If (x2<=10)
   Set Variable: "move_x2" = -(move_x2)
  End If
  If (y2 >= 190)
   Set Variable: "move_y2" = -(move_y2)
  Else If (y2<=10)
   Set Variable: "move_y2" = -(move_y2)
  End If
  這裡先取得兩個小球目前的「X」位置和「Y」位置(ball1為:x1,y1;ball2為:x2,y2),然後分別對兩個小球執行兩個If判斷。如果X大於等於340(表示球已經到了畫面右邊的邊界),就將變量要移動的「X」距離由正值轉為負值,如果X小於等於10(表示球已經到了畫面左邊的邊界),就將變量要移動的「X」距離由負值轉為正值。如果Y大於等於190(表示球已經到了畫面下方的邊界),就將變量要移動的「Y」距離由正值轉為負值,如果Y小於等於10(表示球已經到了畫面上方的邊界),就將變量要移動的「Y」距離由負值轉為正值。
  第3個影幀設定球體新的「X位置」及「Y位置」,即為目前的「X位置」及「Y位置」,加上變量移動的「X距離」及「Y距離」,然後跳回第2個影幀。

  Set Property ("/ball1", X Position) = x1-move_x1
  Set Property ("/ball1", Y Position) = y1-move_y1
  Set Property ("/ball2", X Position) = x2-move_x2
  Set Property ("/ball2", Y Position) = y2-move_y2
  Go to and Play (2)

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。