bitmapの勉強3

by knowt
♥2 | Line 56 | Modified 2010-09-02 18:22:49 | MIT License
play

ActionScript3 source code

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

package {
    import flash.display.BlendMode;
    import flash.filters.BlurFilter;
    import flash.geom.ColorTransform;
    import flash.geom.Rectangle;
    import flash.geom.Point;
    import flash.utils.Proxy;
    import flash.events.Event;
    import flash.geom.Matrix;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Sprite;     
        public class FlashTest extends Sprite {
        private var stage_x:Number = stage.stageWidth;
        private var stage_y:Number = stage.stageHeight;
        private var px:Number = stage_x/2 ; //position_x
        private var py:Number = stage_y/2 ; //position_y
        private var rot:Number = 0;            //Angle?
        private var rot_speed:Number = 5;      //speed
        private var radius:Number = 30;        //Radius
       
        public function FlashTest() {
            graphics.beginFill(0);             //BackgroundColor
            graphics.drawRect(0,0,stage_x,stage_y);
            
            var bitmap:Bitmap = new Bitmap();
            var bitmapData:BitmapData = new BitmapData(stage_x,stage_y);
            var backbitmapData:BitmapData = new BitmapData(stage_x,stage_y,true,0x00000000);       
            var parts:BitmapData = new BitmapData(40,40,true,0x00000000); //circle BitmapData
                    
           
            var filter:BlurFilter = new BlurFilter(3,3,1);
            var blend:BlendMode = new BlendMode();
            
            var sprite:Sprite = new Sprite();
            //sprite.graphics.lineStyle(2,0x000000); //line color
            sprite.graphics.beginFill(0x44ff00);   //circle color
            sprite.graphics.drawCircle(0,0,10);    //circle size
            var matrix:Matrix = new Matrix();
            matrix.translate(20,20);               //circle position
            parts.draw(sprite,matrix);
            var point:Point = new Point(px-20,py-20);
            var rect:Rectangle = new Rectangle(0,0,stage_x,stage_y);
            
            addEventListener(Event.ENTER_FRAME,myFunc);
            addChild(bitmap);
            
            function myFunc(event:Event):void{
                bitmapData = backbitmapData.clone();
                bitmapData.copyPixels(parts,rect,point,null,null,true);
                backbitmapData = bitmapData.clone();
                backbitmapData.colorTransform(rect,new ColorTransform(1, 1, 1, 0.99, 2, 0, 5, 0));
                backbitmapData.applyFilter(backbitmapData,rect,new Point(0,0),filter);
                //backbitmapData.draw(backbitmapData,null,null,"add");
                
                bitmap.bitmapData = bitmapData;
                
                rot += rot_speed;
                
                var rad:Number = rot * Math.PI / 180;
               
                var wx:Number = (px-20) + Math.cos(rad) * radius ;
                var wy:Number = (py-20) + Math.sin(rad) * radius ;
                
                point.x = wx;
                point.y = wy;
                
            }
            
        }

    }
}