[練習]

by Tamanegi_kenshi
♥0 | Line 94 | Modified 2010-09-03 04:26:06 | MIT License
play

ActionScript3 source code

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

package {
    import flash.display.Bitmap;
    import flash.display.AVM1Movie;
    import flash.display.BitmapData;
    import flash.display.Sprite;
    import flash.display.StageScaleMode;
    import flash.display.StageAlign;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.ui.Mouse;
    
    [SWF(backgroundColor = 0x000000)]
    
    public class FlashTest extends Sprite {

      
        private var isFire:Boolean = false;
        private var rousoku:Rousoku;
        
        
        public function FlashTest() {
            init();
        }
        private function init():void{
            stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
           
         
            rousoku = new Rousoku(30, 150);
            addChild(rousoku);
            rousoku.x = 232;
            rousoku.y = 320;
            rousoku.buttonMode = true;
            rousoku.alpha = 0.1;
            
  
            rousoku.addEventListener(MouseEvent.CLICK, onClick);
            //stage.addEventListener(Event.ENTER_FRAME, onEn);
        }
        
       

        private function onClick(e:MouseEvent):void{
  
            if(isFire == false){
                e.target.addEventListener(Event.ENTER_FRAME, onFire);
                e.target.alpha = 0.1;
                isFire = true;
            }else{
                isFire = false;
                e.target.alpha = 1;
            }

        }

        private function onFire(e:Event):void{
            if(isFire == false){
            var ball:Ball = new Ball(mouseX, mouseY);
            e.target.addChild(ball);
         
            ball.x = 0;
            ball.y = -85;
            
          //  rousokuAlpha();
            }
        }
 //       private function rousokuAlpha():void{
      //      var valpha:Number = (1 - rousoku.alpha) * 0.1;
       //     rousoku.alpha += valpha;
      //  }

        
    }
}
import flash.display.GradientType;
import flash.geom.Matrix;
import flash.filters.BlurFilter;

import flash.display.Sprite;
import flash.events.Event;
import flash.display.BlendMode;

class Ball extends Sprite{
    private var angle:Number = -90;
    private var radius:int = 15;
    
    function Ball(mouseX:Number, mouseY:Number){
        var color:Array = [0xffffff, 0x660000,Math.random() * 0xffffff];
        var alpha:Array = [1, 1, 1];
        var rotions:Array = [0, 200,255];
        var matrix:Matrix = new Matrix();
        matrix.createGradientBox(radius * 2, radius * 2, 0, - radius, -radius );
       
        graphics.beginGradientFill(GradientType.RADIAL, color, alpha, rotions, matrix);
        //graphics.beginFill(Math.random() * 0xffffff);
        graphics.drawCircle(0, 0, radius);
        graphics.endFill();
         
        this.blendMode = BlendMode.ADD;
        this.filters = [new BlurFilter(10, 10, 2)];
        
        this.x = mouseX;
        this.y = mouseY;
        
        this.addEventListener(Event.ENTER_FRAME, ballEnter);
    }
    private function ballEnter(e:Event):void{
      /*
        angle += 5;
        var radian:Number = angle * Math.PI / 180;
        x = Math.cos(radian) * 50;
        y = Math.sin(radian) * 50;
        if(angle >= 360 - 90){
            removeEventListener(Event.ENTER_FRAME, ballEnter);
            parent.removeChild(this);
        }
        */
        
        this.y -= 5;
        this.x += Math.random() * 1 - 0.5;
        
        var vs:Number = (0 - this.scaleX) * 0.05;
        
        
        this.scaleX += vs;
        this.scaleY += vs;
        
        if(this.scaleX <= 0.1){
            removeEventListener(Event.ENTER_FRAME, ballEnter);
            parent.removeChild(this);
        }

    }
}
import flash.display.Sprite;
import flash.filters.BlurFilter;
class Rousoku extends Sprite{
    public function Rousoku(w:int, h:int){
        graphics.beginFill(0xcccccc);
        graphics.drawRect(-w / 2, -h / 2, w, h);
        graphics.endFill(); 
        
        this.filters = [new BlurFilter(4, 4, 1)];
    }

}