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

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

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


FORKED
  1. // forked from abakane's Film2
  2. package{
  3.     import flash.display.*;
  4.     import flash.events.*;
  5.     import flash.geom.*;
  6.     [SWF(width=465, height=465, backgroundColor=0x0, frameRate=60)]
  7.     
  8.     public class Film2 extends Sprite{
  9.         private static const W:uint = 99;
  10.         private static const H:uint = 99;
  11.         private var _canvas:BitmapData;
  12.         private var _perlin:BitmapData;
  13.         private var seed:uint = Math.floor( Math.random()*0xFFFF );
  14.         private var point:Point = new Point(00);
  15.         private var cx:Number = stage.stageWidth/2;
  16.         private var cy:Number = stage.stageHeight/2;
  17.         private var ct:ColorTransform = new ColorTransform( 00.80.90.90000);
  18.         private var sibling:Particle = null;
  19.     
  20.         public function Film2(){
  21.             stage.quality = StageQuality.LOW;
  22.             _canvas = new BitmapData( stage.stageWidth, stage.stageHeight, false, 0x0);
  23.             _perlin = new BitmapData( W, H, false, 0x0);
  24.             addChild( new Bitmap(_canvas) );
  25.             for(var i:uint=0; i<W*H; i++){
  26.                 var p:Particle = new Particle( i%W-W/20, Math.floor(i/W)-H/2, sibling);
  27.                 sibling = p;
  28.             }
  29.             this.addEventListener( Event.ENTER_FRAME, update);//
  30.         }
  31.         
  32.         private function update( e:Event ):void{
  33.             point.x = point.y ++;
  34.             _perlin.perlinNoise( 50502, seed, falsetrue0true, [point]);
  35.             var last:Particle = sibling;
  36.             _canvas.lock();
  37.             _canvas.colorTransform( _canvas.rect, ct);
  38.             while(sibling){
  39.                 var p:Particle = sibling;
  40.                 var col:uint = _perlin.getPixel( p.bx+W/2, p.bz+H/2);
  41.                 var _y:Number = ( (col >> 16) - 0x80 )/1.3;
  42.                 var point:Point = p.rotate();//
  43.                 _canvas.setPixel( point.x + cx, point.y + _y + cy, col);
  44.                 sibling = p.s;
  45.             }
  46.             _canvas.unlock();
  47.             sibling = last;
  48.         }
  49.     }
  50. }
  51. import flash.geom.Point;
  52. class Particle{
  53.     public var bx:Number;
  54.     public var by:Number;
  55.     public var bz:Number;
  56.     public var s:Particle;
  57.     private static const SP:uint = 4;
  58.     private static const FL:uint = 250;
  59.     private static const COS:Number = Math.cos(0.5);
  60.     private static const SIN:Number = Math.sin(0.5);
  61.     
  62.     function Particle( _bx:Number=0, _by:Number=0, _bz:Number=0, _s:Particle=null){
  63.         bx = _bx;
  64.         by = _by;
  65.         bz = _bz;
  66.         s = _s;
  67.     }
  68.     public function rotate():Point{
  69.         var _y:Number = by*COS - bz*SIN;
  70.         var _z:Number = bz*COS + by*SIN;
  71.         var scale:Number = FL/( FL + _z );
  72.         return new Point( bx*scale*SP, _y*scale*SP);
  73.     }
  74. }
noswf
Get Adobe Flash Player