背景白で残像

by macomputer
♥0 | Line 69 | Modified 2009-12-04 21:34:59 | MIT License
play

ActionScript3 source code

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

package {
    import flash.display.Sprite;
    import flash.display.Shape;
    import flash.display.Graphics;
    import flash.events.*;
    import flash.display.BitmapData;
    import flash.display.Bitmap;
    import flash.filters.BlurFilter;
    import flash.geom.ColorTransform;
    import flash.geom.Point;
    import flash.display.BlendMode;
    
    [SWF(backgroundColor="#F2F2F2", frameRate=30)]
    public class FlashTest extends Sprite{
        public function FlashTest() {
            // write as3 code here..
            var mc:Sprite = new Sprite();
            stage.addChild(mc);
            mc.blendMode = BlendMode.DIFFERENCE;
            //mc.scaleX = 2;
            //mc.scaleY = 2;
            
            var shape:Shape = new Shape();
            mc.addChild(shape);
            var g:Graphics = shape.graphics;
            g.lineStyle (0, 0x000000, 0);
            //この色はブレンドモードを考慮
            g.beginFill (0x000FFFF, 1.0);
            g.drawCircle  ( 0, 0 , 40);
            
            
            var vx:Number = 2;
            var vy:Number = -5;
            var gravity:Number = 0.5;
            var spring:Number = 0.1;
            var friction:Number = 0.8;
            var cTra:ColorTransform = new ColorTransform(0.99, 0.99, 0.99 , 1);
            var bmd:BitmapData = new BitmapData(500, 500, true, 0xFFFFFF);
            var bm:Bitmap = new Bitmap(bmd);
            var bf:BlurFilter = new BlurFilter(8, 8, 1);
            mc.addChild(bm);
            
            
            shape.addEventListener(Event.ENTER_FRAME, motionG);
            function motionG(event:Event):void{
                var dx:Number = mouseX - shape.x;
                var dy:Number = mouseY - shape.y;
                var ax:Number = dx * spring;
                var ay:Number = dy * spring;
                vx += ax;
                vy += ay;
                vx *= friction;
                vy *= friction;
                vy += gravity;
                shape.x += vx;
                shape.y += vy;

                
                if(shape.y > 400){
                    shape.y = 400;
                    vy *= -1;
                }
                if(shape.y < 40){
                    shape.y = 40;
                    vy *= -1;
                }
                if(shape.x > 450){
                    shape.x = 450;
                    vx *= -1;
                }
                if(shape.x < 40){
                    shape.x = 40;
                    vx *= -1;
                }
                bmd.draw(mc);
	           // bmd.scroll(3, 0);
	            bmd.applyFilter(bmd, bmd.rect, new Point(0,0), bf);
	            bmd.colorTransform(bmd.rect, cTra); 
            }
        }
    }
}