BitmapDataの練習

by com4dc
♥0 | Line 40 | Modified 2009-07-02 19:48:50 | MIT License
play

ActionScript3 source code

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

package {
    import flash.display.Sprite;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.BitmapDataChannel;
    import flash.events.Event;
    
    [SWF(backgroundColor="#FFFFFF", frameRate=60)]
    public class FlashTest extends Sprite {
        public function FlashTest() {
            // write as3 code here..
          init();
	}
		
	private var bmpd:BitmapData;
        private var seed:Number;
        private var channels:uint;
        
        private function init():void
        {
            this.addEventListener(Event.ENTER_FRAME, frameHandler);
            
            bmpd = new BitmapData(200,200, false, 0x00CCCCCC);
            channels = BitmapDataChannel.RED | BitmapDataChannel.BLUE | BitmapDataChannel.GREEN;
            seed = Math.floor(Math.random() * 10 );
            bmpd.perlinNoise(100, 80, 6, seed, false, true, channels, false, null);
            
            var bm:Bitmap = new Bitmap(bmpd);
            
            this.addChild(bm);
        }
        
        private var _bmpData:BitmapData;
        private var _bmp:Bitmap;
        
        private function frameHandler(event:Event):void
        {
            var bmpd2:BitmapData = bmpd.clone();
            for (var i:int = 0; i < bmpd2.width; i++ )
            {
                for (var j:int = 0; j < bmpd2.height; j++ )
                {
                    seed = Math.floor(Math.random() * 256 );
                    bmpd.setPixel(i, j, bmpd2.getPixel( i, j) +  seed);
                }
            }
        }
   }
}