ActionScript 範例下載 – 「布朗運動」不規則隨機粒子動畫效果

用 ActionScript 模擬「布朗運動」(Brownian motion)

所謂的「布朗運動」簡單的說就是亂數隨機跑來跑去的、不規則的動畫,使用 ActionScript 程式就可以做出這種隨機不規則的動畫,比起使用Flash 時間軸出來的動畫有趣多了。

ActionScript 程式設計  - ActionScript 範例下載 - 「布朗運動」不規則隨機粒子動畫效果 - fly014

swf 動畫預覽

http://www.flycan.com/sample/20091020_Brownian_motion/04_BrownBall.html

 

西元 1827 年英國的植物學家羅伯特‧布朗(Robert Brown) 在研究花粉和孢子的懸浮狀態的時候,發現花粉微粒會呈現出不規則的運動,後來證實發現其他微細顆粒如灰塵也會有類似同樣的現象….因此布朗運動的大意就是指的就是不規則的隨機運動,詳情請查閱「維基百科」。

西元 2009 年台灣的姜老師在飛肯設計學苑看到 ALEX 老師的「ActionScript 3.0 陣列迴圈特訓班」上課的時候,發現 ALEX 老師介紹如何使用 ActionScript 模擬布朗運動隨機動畫,才嚇然發現原來世界上有布朗運動這種東東….羅伯特真是太偉大了! ALEX 老師也好偉大~

以下這個範例就是 ALEX 老師做的微粒布朗運動隨機動畫程式原始碼:

首先第一步,先製作一個小圓球 MovieClip 元件,在 MovieClip 元件的內部時間軸第一格上,寫 ActionScript 讓小圓球本身呈現出隨機亂數座標移動、隨機亂數透明度、隨機亂數縮放大小…程式碼如下:

      var targetX:Number = Math.random()*stage.stageWidth;
      var targetY:Number = Math.random()*stage.stageHeight;
      var speed:Number = Math.random()/10;
      var targetAlpha = Math.random()*1;
      var targetScale = Math.random()*0.8+0.2;

      this.alpha = targetAlpha;
      this.scaleX = this.scaleY = targetScale;
      this.addEventListener(Event.ENTER_FRAME,onEnterFrameEvent);

      function onEnterFrameEvent(e:Event) {
          if (Math.ceil(Math.random()*100)== 1) {
              targetX = Math.random()*stage.stageWidth;
              targetY = Math.random()*stage.stageHeight;
              speed = Math.random()/50;
              targetAlpha = Math.random()*1;
              targetScale = Math.random()*0.8+0.2;
          }
          this.x += (targetX-x)*speed;
          this.y += (targetY-y)*speed;
          this.alpha += (targetAlpha-alpha)*speed;
          this.scaleX = this.scaleY += (targetScale-this.scaleX)*speed;
      }

 

回到場景上,使用 for 迴圈宣告 50 顆小圓球元件,再用 addChild() 讓小圓球元件顯示在畫面上…程式碼如下:

      var total:Number = 50;
      var container:Sprite = new Sprite();
      addChild(container);
      for (var i:uint=0; i<total; i++) {
          var _mc:MovieClip = new ball();
          _mc.x = stage.stageWidth/2;
          _mc.y = stage.stageHeight/2;
          container.addChild(_mc);
      }

fla 原始檔下載

http://www.flycan.com/sample/20091020_Brownian_motion/04_BrownBall.fla

 

ALEX 老師的「ActionScript 3.0 陣列迴圈特訓班

當您對本文有任何問題或指教,歡迎到我們的【飛肯粉絲團】一起交流討論喔!

posted in ActionScript 程式設計 and tagged , , .

迴響已被關閉。