In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

花火

花火。っぽい??
Get Adobe Flash player
by rivi 03 Oct 2009
    Embed
/**
 * Copyright rivi ( http://wonderfl.net/user/rivi )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/zeMF
 */

//花火。っぽい??

package {
    import flash.display.Sprite;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.events.*; 
    import flash.utils.Timer; 
    import flash.geom.ColorTransform; 

    public class hanabi extends Sprite {
        //インスタンス確保のための配列
        var ci = new Array();
        //タイマー
        var timer:Timer;
        //重力
        const g:Number = 0.015;
        //色落とし
        var cTra:ColorTransform;
        
        var stageW:Number = stage.stageWidth;
        var stageH:Number = stage.stageHeight;
        
        var viewBmd:BitmapData;
        var viewBmp:Bitmap;

        var ct:ColorTransform;
 
        public function hanabi() {
            
            viewBmd = new BitmapData(stageW, stageH, false, 0x0);
            viewBmp = new Bitmap(viewBmd);
            addChild(viewBmp);
            
            ct = new ColorTransform();
            ct.redMultiplier = 0.9;
            ct.greenMultiplier = 0.9;
            ct.blueMultiplier = 0.9;
            
            addEventListener(Event.ENTER_FRAME, bitstage);
            
            addEventListener(Event.ENTER_FRAME, move);
            timer = new Timer(400);
            timer.addEventListener(TimerEvent.TIMER, posi);
            timer.start();
        }
        function posi(e:Event):void{
            var xx:Number = stage.stageWidth * Math.random()*4/5 + (stage.stageWidth * 1/10);
            var yy:Number = stage.stageHeight * Math.random()*2/3;
            var color:Number = 0xFFFFFF * Math.random();
            for( var i:int = 0; i < 83; i++){
                var cir:Cir = new Cir(color);
                cir.de = 100;
                cir.x = xx;
                cir.y = yy;
                if(i < 30){
                    cir.vx = Math.cos(i*(360/30)/180 * Math.PI) * 2;
                    cir.vy = Math.sin(i*(360/30)/180 * Math.PI) * 2;
                }
                else if(i < 55){
                    cir.vx = Math.cos(i*(360/25)/180 * Math.PI) * 1.5;
                    cir.vy = Math.sin(i*(360/25)/180 * Math.PI) * 1.5;
                }                
                else if(i < 70){
                    cir.vx = Math.cos(i*(360/15)/180 * Math.PI) * 1;
                    cir.vy = Math.sin(i*(360/15)/180 * Math.PI) * 1;
                }
                else if(i < 80){
                    cir.vx = Math.cos(i*(360/10)/180 * Math.PI) * 0.5;
                    cir.vy = Math.sin(i*(360/10)/180 * Math.PI) * 0.5;
                }
                else if(i < 83){
                    cir.vx = Math.cos(i*120/180 * Math.PI) * 0.1;
                    cir.vy = Math.sin(i*120/180 * Math.PI) * 0.1;
                }                   
                ci.push(cir);

            }

        }
        function move(e:Event):void{
            for( var i:int = 0; i < ci.length; i++){
                addChild(ci[i]);
                ci[i].vy += g; 
                ci[i].x += ci[i].vx;
                ci[i].y += ci[i].vy;
                ci[i].de -= 1.5;
                if(ci[i].de < 30){
                    ci[i].alpha -= 0.05;    
                }
                if(ci[i].de < 0){
                    removeChild(ci[i]);
                    this.ci.splice(i,1);
                }
            }
        }
        
        function bitstage(e:Event):void{
            viewBmd.draw(stage,null,ct);
       }    
    }
}

    import flash.display.*;
    class Cir extends Sprite{
        //速度
        public var vx:Number;
        public var vy:Number;
        public var de:Number;
        public function Cir(color):void{
            graphics.beginFill(color);
            graphics.drawCircle(0,0,1);
            graphics.endFill();
        }
    }