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

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

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


FORKED
  1. // forked from miyaoka's MathematicalGraphics in dailyLife
  2. /*
  3. これ
  4. http://www.masahicom.com/blog/index.cgi/information/20090312suurikyokusen-kagaku.htm
  5. クリックで軌跡のフェード有無切り替え
  6. */
  7. package  
  8. {
  9.     import flash.display.Sprite;
  10.     import flash.display.BitmapData;
  11.     import flash.display.Bitmap;
  12.     import flash.utils.Timer;
  13.     import flash.events.TimerEvent;
  14.     import flash.geom.ColorTransform;
  15.     import flash.geom.Matrix;
  16.     import flash.display.GradientType;
  17.     import flash.events.MouseEvent;
  18.     [SWF(width = "465", height = "465", backgroundColor = 0x335544, frameRate = "60")]
  19.     public class MathematicalGraphics 
  20.     extends Sprite
  21.     {
  22.         
  23.         public function MathematicalGraphics() 
  24.         {
  25.             var bg:Sprite = new Sprite();
  26.             var mtr:Matrix = new Matrix();
  27.             mtr.createGradientBox(stage.stageWidth, stage.stageHeight, Math.PI/2);
  28.             bg.graphics.beginGradientFill(
  29.                 GradientType.RADIAL, 
  30.                 [0x55735b, 0x3a4e37], 
  31.                 [1,1],
  32.                 [0255],
  33.                 mtr
  34.             );
  35.             bg.graphics.drawRect(00, stage.stageWidth, stage.stageHeight);
  36.             //
  37.             var bd:BitmapData = new BitmapData(465,400,true,0x00FFFFFF)
  38.             var container:Container = new Container(bd);
  39.             container.y = 400;
  40.             //
  41.             var bmp:Bitmap = new Bitmap(bd);
  42.             //
  43.             var timer:Timer = new Timer(100);
  44.             timer.addEventListener(TimerEvent.TIMER, function ():void 
  45.             {
  46.                 bd.colorTransform(bd.rect, new ColorTransform(1110.95));
  47.             });
  48.             timer.start();
  49.             //
  50.             stage.addEventListener(MouseEvent.MOUSE_DOWN,function ():void 
  51.             {
  52.                 timer.running ? timer.stop() : timer.start();
  53.             });
  54.             addChild(bg);
  55.             addChild(bmp);
  56.             addChild(container);
  57.         }
  58.         
  59.     }
  60.     
  61. }
  62. import flash.display.Bitmap;
  63. import flash.display.BitmapData;
  64. import flash.display.Graphics;
  65. import flash.display.Sprite;
  66. import flash.geom.Point;
  67. import flash.geom.Rectangle;
  68. import flash.events.Event;
  69. import flash.geom.Matrix;
  70. import flash.display.GradientType;
  71.     
  72. class Container
  73. extends Sprite
  74. {
  75.     private var bd:BitmapData;
  76.     public function Container(bd_:BitmapData):void 
  77.     {
  78.         bd = bd_;
  79.         
  80.         var bg:Sprite = new Sprite();
  81.         var mtr:Matrix = new Matrix();
  82.         mtr.createGradientBox(465100, Math.PI/2);
  83.         bg.graphics.beginGradientFill(
  84.             GradientType.LINEAR, 
  85.             [0xdec392, 0x8a7356], 
  86.             [1,1],
  87.             [0255],
  88.             mtr
  89.         );
  90.         bg.graphics.drawRect(00465100);
  91.         addChild(bg);
  92.             
  93.         add();
  94.         add();
  95.         add();
  96. //        add();
  97. //        add();
  98.     }
  99.     private function add():void 
  100.     {
  101.         var mover:Mover;
  102.         var i:uint = Math.floor(Math.random() * 3);
  103.         switch (i) 
  104.         {
  105.             case 0:
  106.                 mover = new Hammer();
  107.                 break;
  108.             case 1:
  109.                 mover = new Roller();
  110.                 break;
  111.             case 2:
  112.                 mover = new Cube();
  113.                 break;
  114.             
  115.         }
  116.         
  117.         mover.addEventListener(Event.ENTER_FRAME, update);
  118.         addChild(mover);
  119.     }
  120.     public function update(e:Event):void 
  121.     {
  122.         var o:Mover = e.target as Mover;
  123.         
  124.         var pts:Array = o.pts.map(function (pt:Point, i:int, a:Array):Point
  125.         {
  126.             return o.localToGlobal(pt);
  127.         });
  128.         
  129.         o.update();
  130.         
  131.         var sp:Sprite = new Sprite();
  132.         var g:Graphics = sp.graphics;
  133.         
  134.         g.beginFill(0,0);
  135.         g.lineStyle(1.5,0xFFFFFF, 0.5);
  136.         
  137.         
  138.         var len:uint = pts.length;
  139.         for (var i:uint = 0; i < len; i++)
  140.         {
  141.             var pt:Point = pts[i];
  142.             g.moveTo(pt.x, pt.y);
  143.             pt = o.localToGlobal(o.pts[i]);
  144.             g.lineTo(pt.x, pt.y);
  145.             
  146.         }
  147.         //g.moveTo(pt1.x, pt1.y);
  148.         //pt1 = o.localToGlobal(o.pt1);
  149.         //g.lineTo(pt1.x, pt1.y);
  150.         //
  151.         //g.moveTo(pt2.x, pt2.y);
  152.         //pt2 = o.localToGlobal(o.pt2);
  153.         //g.lineTo(pt2.x, pt2.y);
  154.         
  155.         bd.draw(sp);
  156.         sp = null;
  157.         var rect:Rectangle = o.getBounds(this);
  158.         if (rect.x > 465)
  159.         {
  160.             o.removeEventListener(Event.ENTER_FRAME, update);
  161.             removeChild(o);
  162.             o = null;
  163.             add();
  164.         }        
  165.     }
  166. }
  167. class Mover
  168. extends Sprite
  169. {
  170.     protected var xx:Number;
  171.     protected var yy:Number;
  172.     protected var rr:Number;
  173.     public var pts:Array = new Array;
  174.     public static const GRAV:Number = 0.01;
  175.     protected var ref:Number = -0.9
  176.     public function update():void 
  177.     {
  178.         x += xx;
  179.         y += yy;
  180.         rotation += rr;
  181.         
  182.         var rect:Rectangle = getRect(parent);
  183.         var h:Number = rect.y + rect.height
  184.         if (0 < h)
  185.         {
  186.             y -= h;
  187.             yy *= ref;
  188.         }
  189.         yy += GRAV;
  190.     }
  191. }
  192. class CircleMover
  193. extends Mover
  194. {
  195.     protected var r:Number;
  196.     override public function update():void 
  197.     {
  198.         x += xx;
  199.         y += yy;
  200.         rotation += rr;
  201.         
  202.         var h:Number = y + r;
  203.         if (0 < h)
  204.         {
  205.             y -= h;
  206.             yy *= ref;
  207.         }
  208.         yy += GRAV;
  209.     }
  210. }
  211. class Hammer
  212. extends Mover
  213. {
  214.     public function Hammer():void 
  215.     {
  216.         //graphics
  217.         var g:Graphics = graphics;
  218. //        g.lineStyle(2);
  219.         g.beginFill(0x997755);
  220.         g.drawRect( -40860);
  221.         g.endFill();
  222.         g.beginFill(0);
  223.         g.drawRect( -10, -4208);
  224.         g.endFill();
  225.         
  226.         //
  227.         x = y = -height;
  228.         y -= Math.random() * 100;
  229.         rotation = Math.random() * 360;
  230.         
  231.         //
  232.         pts.push(new Point(00), new Point(060));
  233.         xx = Math.random() * 1.5 + 0.5;
  234.         yy = -(Math.random() * 1 + 1.5);
  235.         rr = xx * (Math.random()*1.0 + 0.5) * ( (Math.random() < 0.5) ? 1 : -1);
  236.         
  237.         //
  238.         ref = -0.9;
  239.     }
  240. }
  241. class Roller
  242. extends CircleMover
  243. {
  244.     public function Roller():void 
  245.     {
  246.         //graphics
  247.         var g:Graphics = graphics;
  248. //        g.lineStyle(2);
  249.         g.beginFill(0xdddddd);
  250.         g.drawCircle( 0020);
  251.         g.drawCircle( 0012);
  252.         g.endFill();
  253.         
  254.         g.beginFill(0x990000);
  255.         g.drawCircle( 0162);
  256.         
  257.         x = y = -height;
  258.         y -= Math.random() * 300;
  259.         rotation = Math.random() * 360;
  260.         
  261.         //
  262.         pts.push(new Point(016));
  263.         xx = Math.random() * 1 + 0.5;
  264.         yy = -(Math.random() * 0.1 + 0.1);
  265.         rr = xx * Math.PI;
  266.         
  267.         //
  268.         r = 20;
  269.         ref = -0.3;
  270.     }
  271. }
  272. class Cube
  273. extends Mover
  274. {
  275.     public function Cube():void 
  276.     {
  277.         //graphics
  278.         var g:Graphics = graphics;
  279. //        g.lineStyle(2);
  280.         g.beginFill(0x448844);
  281.         g.drawRect( -20, -204040);
  282.         g.endFill();
  283.         
  284.         x = y = -height;
  285.         y -= Math.random() * 200;
  286.         rotation = Math.random() * 360;
  287.         
  288.         //
  289.         pts.push(new Point(-20, -20), new Point(2020));
  290.         xx = Math.random() * 1.5 + 0.5;
  291.         yy = -(Math.random() * 1.5 + 0.5);
  292.         rr = xx * (Math.random()*2 + 0.2);
  293.         
  294.         //
  295.         ref = -0.7;
  296.     }
  297. }
noswf
Get Adobe Flash Player