※現在、「wonderfl build flash online」求人コンテンツ制作に関してのアンケートを実施中です!みなさまのお力添えを頂いて、続々とアンケート結果が集まっていますが、まだまだ募集しております。ご協力のほど、どうぞよろしくお願いいたします!

wonderfl運営事務局
→アンケートページ(※ログインしてからお答えいただけるようになっています。)

 notice: Flash editor updated! Join the development! Thanks to MiniBuilder


forked from : fladdict's Worm Study02 [diff(3)]

FORKED
  1. // forked from fladdict's Worm Study03
  2. // forked from fladdict's Worm Study02
  3. // forked from fladdict's Worm Study01
  4. // forked from fladdict's code on 2008-12-17
  5. // write as3 code here..
  6. // Study for color generation.
  7. package{
  8.   import flash.display.*
  9.   import flash.events.*
  10.   import flash.geom.*
  11.   public class Sketch02 extends Sprite
  12.   {
  13.     public var bm:Bitmap;
  14.     public var bmd:BitmapData;
  15.     public var particles:Array;
  16.     public var numParticles:int = 100;
  17.     public function Sketch02():void
  18.     {
  19.       bmd = new BitmapData(stage.stageWidth,stage.stageHeight, false, 0x000000);
  20.       bm = new Bitmap(bmd);
  21.       addChild(bm);
  22.       particles = [];
  23.       for(var i:int=0; i<numParticles; i++)
  24.       {
  25.         var prt:Object = createParticle();
  26.         particles.push(prt);
  27.       }
  28.       stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
  29.     }
  30.     public function enterFrameHandler(e:Event):void
  31.     {
  32.       var n:int = particles.length;
  33.       for(var i:int=0; i<n; i++)
  34.       {
  35.         var prt:Object = particles[i];
  36.         prt.dv += Math.random()*0.03-0.015;
  37.         prt.direction += prt.dv;
  38.         prt.x += Math.cos(prt.direction) * prt.v;
  39.         prt.y += Math.sin(prt.direction) * prt.v;
  40.         if(prt.x < 0 ){
  41.           prt.x = stage.stageWidth;
  42.         }else if(prt.x > stage.stageWidth){
  43.           prt.x = 0;
  44.         }
  45.         if(prt.y < 0 ){
  46.           prt.y = stage.stageHeight;
  47.         }else if(prt.y > stage.stageHeight){
  48.           prt.y = 0;
  49.         }
  50.         //
  51.         //Add randomness to color
  52.         //
  53.         prt.rad += prt.radV;
  54.         var r:Number = prt.red   * ((1+Math.cos(prt.rad))*0.5);
  55.         var g:Number = prt.green * ((1+Math.cos(prt.rad))*0.5);
  56.         var b:Number = prt.blue  * ((1+Math.cos(prt.rad))*0.5);
  57.         r = Math.round(Math.min(255, Math.max(0,r)));
  58.         g = Math.round(Math.min(255, Math.max(0,g)));
  59.         b = Math.round(Math.min(255, Math.max(0,b)));
  60.         var col:Number = r<<16 | g<<8 | b;
  61.         bmd.setPixel(prt.x, prt.y, col);
  62.       }
  63.     }
  64.     protected function createParticle():Object
  65.     {
  66.         var obj:Object = {};
  67.         //moving setting
  68.         obj.x = stage.stageWidth * 0.5;
  69.         obj.y = stage.stageHeight * 0.5;
  70.         obj.v = 0.4 + Math.random()*0.5;
  71.         obj.direction = Math.random()*Math.PI*2;
  72.         //color setting
  73.         obj.red = Math.random()*255;
  74.         obj.green = Math.random()*obj.red;
  75.         obj.blue = Math.random()*obj.red;
  76.         //oscilator setting
  77.         obj.rad = Math.random()*Math.PI*2;
  78.         obj.radV = 0.1;
  79.         obj.color = getColor();
  80.         obj.dv = (Math.random()-0.5) * 0.03;
  81.         return obj;
  82.     }
  83.     protected function getColor():int
  84.     {
  85.         var r:int = Math.random()*255;
  86.         var g:int = Math.random()*r*0.5 + r*0.5;
  87.         var b:int = Math.random()*g*0.5 + r*0.5;
  88.         return r<<16 | g<<16 | b;
  89.     }
  90.     protected function normRand():Number 
  91.     {
  92.       return (Math.random()+Math.random()+Math.random()+Math.random()+Math.random())/5 - 0.5;
  93.     }
  94.   }
  95. }
noswf
Get Adobe Flash Player