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

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

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


FORKED
  1. // forked from nbhd's MathGraphics1
  2. // 重いので注意!
  3. package  
  4. {
  5.     import flash.filters.GlowFilter;
  6.     import flash.filters.BlurFilter;
  7.     import flash.geom.ColorTransform;
  8.     import flash.display.Bitmap;
  9.     import flash.display.Graphics;
  10.     import flash.display.BitmapData;
  11.     import flash.events.Event;
  12.     import flash.display.Sprite;
  13.     import net.hires.debug.Stats;
  14.     import flash.geom.Rectangle;
  15.     import flash.geom.Point;
  16.     /**
  17.      * @author NBHD
  18.      */
  19.     [SWF(frameRate=60)]
  20.     public class MathGraphics1 extends Sprite 
  21.     {
  22.         
  23.         private var _circle:Particle;
  24.         private var _particleList:Array = [];
  25.         
  26.         private const MAX:uint = 1500;
  27.         
  28.         private var _bmd:BitmapData;
  29.         private var _bmp:Bitmap;
  30.         private var _colortransform:ColorTransform = new ColorTransform(1111111, -1)
  31.         private var _rect:Rectangle = new Rectangle(0,0,3,3);
  32.         private var _point:Point = new Point();
  33.         private var _particlebmd:BitmapData;
  34.         
  35.         public function MathGraphics1()
  36.         {
  37.             addEventListener(Event.ADDED_TO_STAGE, _onAdded);
  38.         }
  39.         
  40.         private function _onAdded(event:Event):void
  41.         {
  42.             removeEventListener(event.type, arguments.callee);
  43.             
  44.             _circle = new Particle(5, 0xff0000,1);
  45.             //addChild(_circle);
  46.             _circle.x = stage.stageWidth / 2;
  47.             _circle.y = stage.stageHeight / 2;
  48.             _circle.mass = 1000;
  49.             
  50.             _bmd = new BitmapData(stage.stageWidth, stage.stageHeight, false, 0x000000);
  51.             _bmp = new Bitmap(_bmd);
  52.             
  53.             addChild(_bmp);
  54.             
  55.             
  56.             for(var i:uint = 0; i < MAX; i++) {
  57.                 _particleList[i] = new Particle(1, 0xffffff, 0.2);
  58.                 //_particleList[i].blendMode = 'add';
  59.                 //addChild(_particleList[i]);
  60.                 _particleList[i].x = Math.random() * stage.stageWidth;
  61.                 _particleList[i].y = Math.random() * stage.stageHeight;
  62.                 _particleList[i].vx = 0;
  63.                 _particleList[i].vy = 1;
  64.                 _particleList[i].mass = 1;
  65.                 //_particleList[i].filters = [new BlurFilter(2.5, 2.5), new GlowFilter(Math.random()*0xffffff, 0.7, 2, 2)];
  66.             }
  67.             _particlebmd = new BitmapData(55true, 0x00ffffff)
  68.             var sp:Sprite = new Sprite();
  69.             sp.filters = [new BlurFilter(2.52.5), new GlowFilter(Math.random()*0xffffff, 0.722)];
  70.             var g:Graphics = sp.graphics;
  71.             g.beginFill(0xFFFFFF);
  72.             g.drawCircle(2,2,1);
  73.             _particlebmd.draw(sp)
  74.             //addChild(new Bitmap(_particlebmd));
  75.             stage.quality = "low";
  76.             addEventListener(Event.ENTER_FRAME, _onEnterFrame);
  77.             //addChild(new Stats)
  78.         }
  79.         
  80.         private function _onEnterFrame(event:Event):void
  81.         {
  82.             _bmd.lock();
  83.             
  84.             for(var i:uint = 0; i < MAX ; i++) {
  85.                 _particleList[i].x += _particleList[i].vx;
  86.                 _particleList[i].y += _particleList[i].vy;
  87.                 _gravitate(_particleList[i], _circle);
  88.                 _point.x = _particleList[i].x;
  89.                 _point.y = _particleList[i].y;
  90.                 _bmd.copyPixels(_particlebmd, _rect, _point);
  91.             }
  92.             
  93.             _bmd.colorTransform(_bmd.rect, _colortransform);
  94.             //_bmd.draw(root);
  95.             
  96.             _bmd.unlock();
  97.         }
  98.         
  99.         private function _gravitate(tg1:Particle, tg2:Particle):void
  100.         {
  101.             var dx:Number        = tg2.x - tg1.x;
  102.             var dy:Number        = tg2.y - tg1.y;
  103.             var dist:Number    = dx * dx + dy * dy;
  104.             var force:Number    = tg1.mass * tg2.mass / dist;
  105.             var rad:Number        = Math.atan2(dy, dx);
  106.             var forceX:Number    = force * Math.cos(rad);
  107.             var forceY:Number    = force * Math.sin(rad);
  108.             var sumMass:Number    = tg1.mass + tg2.mass;
  109.             
  110.             
  111.             tg1.vx += forceX * tg2.mass / sumMass;
  112.             tg1.vy += forceY * tg2.mass / sumMass;
  113.             tg2.vx -= forceX * tg1.mass / sumMass;
  114.             tg2.vy -= forceY * tg1.mass / sumMass;
  115.         }
  116.     }
  117. }
  118. import flash.display.Sprite;
  119. internal class Particle
  120. {
  121.         public var x:Number=0;
  122.         public var y:Number=0;
  123.     private var _vx:Number=0;
  124.     public function get vx():Number {
  125.         return _vx;
  126.     }
  127.     public function set vx(vx:Number):void {
  128.         _vx = vx;
  129.     }
  130.     
  131.     
  132.     private var _vy:Number=0;
  133.     public function get vy():Number {
  134.         return _vy;
  135.     }
  136.     public function set vy(vy:Number):void {
  137.         _vy = vy;
  138.     }
  139.     
  140.     
  141.     private var _mass:Number=1;
  142.     public function get mass():Number {
  143.         return _mass;
  144.     }
  145.     public function set mass(mass:Number):void {
  146.         _mass = mass;
  147.     }
  148.     
  149.     
  150.     public function Particle(r:Number = 1, c:uint = 0xFFFFFF, a:Number = 1):void
  151.     {
  152.         /*graphics.beginFill(c, a);
  153.         graphics.drawCircle(0, 0, r);
  154.         graphics.endFill();*/
  155.     }
  156.     
  157. }
noswf
Get Adobe Flash Player