flash on 2015-1-31

by mutantleg
♥0 | Line 59 | Modified 2015-01-31 22:14:37 | MIT License
play

ActionScript3 source code

/**
 * Copyright mutantleg ( http://wonderfl.net/user/mutantleg )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/xdEo
 */

package {
    import flash.text.TextField;
    import flash.geom.Matrix;
    import flash.events.Event;
    import flash.geom.Point;
    
    import flash.geom.ColorTransform;
    import flash.display.BitmapData;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
        
           deb = new TextField();
           deb.width=320;deb.height=240;deb.mouseEnabled=false;
           deb.textColor = 0xFF0000;
           addChild(deb);
        
           pic = new BitmapData(465,465, false, 0);
           pic.perlinNoise(23,12,4,6,true,true,7,true);
           
           var tmp:BitmapData;

           var i:int;           
           for (i = 0; i < 256; i += 16)
           {
            var c:uint;   var m:int;
            m = i;
            c = (m << 24) | (m<<16) | (m << 8) | 0xFF000000;
             tmp  = new BitmapData(pic.width, pic.height, true, 0);
              tmp.draw(pic);
              tmp.threshold(pic, pic.rect, new Point(0,0), "<=", c, 0, 0xFFffFFff); 
              //tmp.noise(23);
             vecPic.push(tmp);             
           }//nexti
           
           deb.text = ""+vecPic.length;
              
           stage.addEventListener(Event.ENTER_FRAME, onEnter);
        }//ctor
        
        public var deb:TextField;
        
        
        public var pic:BitmapData;
        public var canvas:BitmapData = new BitmapData(465,465, false, 0);
        
        public var vecPic:Vector.<BitmapData> = new Vector.<BitmapData>(0, false);
 
        public var gt:int = 0;

        public var mat:Matrix = new Matrix();
 
        public function onEnter(e:Event):void
        {
           graphics.clear();
            
            var ang:Number;
            ang = gt * 0.05;

            var i:int; var num:int; var a:BitmapData;
            num = vecPic.length;
            for (i = 0; i < num; i++)
            {
               mat.tx = Math.cos(ang)*i*2;
               mat.ty = Math.sin(ang)*i*2;
               
               a = vecPic[i];
              canvas.draw(a, mat);
            }//nexti

            /*
               var c:uint;
               var m:int;
               m = (gt*4) % 256;
               c = (m << 24) | (m<<16) | (m << 8) | 0xFF000000;
    
               canvas.draw(pic);
               //canvas.threshold(canvas, canvas.rect, new Point(0,0), "<=", 0xFF888888, 0, 0xFFffFFff); 
               canvas.threshold(canvas, canvas.rect, new Point(0,0), "<=", c, 0, 0xFFffFFff); 
            */          
           
           graphics.beginBitmapFill(canvas,null,false,false);
           graphics.drawRect(0,0,465,465);
           graphics.endFill();
          
           graphics.drawCircle(64,64, 12);  

           gt += 1;            
        }//onenter
        
        
    }//classend
}