forked from: flash on 2010-7-17

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

#   date:2010-7-4
#   author 宇智波
#   fc202030@qq.com
♥0 | Line 121 | Modified 2010-07-17 22:18:27 | MIT License
play

ActionScript3 source code

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

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

/*
 #   date:2010-7-4
 #   author 宇智波
 #   fc202030@qq.com
*/
package{
    import flash.display.*;
    import flash.events.*;
    import flash.filters.*;    
    import flash.geom.*;
    [SWF(width=645, height=645, backgroundColor=0,frameRate=30)]
    public class Main extends Sprite{
        private const S:Number=5;
        private var X:Number;
        private var Y:Number;
        private var R:Number;
        private var glow:GlowFilter;
        private var colorTrans:ColorTransform;
        private var blur:BlurFilter;
        private var point:Point;
        private var Sp:Sprite;
        private var bmpData:BitmapData;
        private var bmp:Bitmap;
        
        private var first:Star;
        private var fc:Star;
        
        //temp variable
        private var i:int;
        private var star:Star;
        
        //
        private var _circleMotion :CircleMotion= new CircleMotion()
        private var _centerPos:Point = new Point()
        
        public function Main(){
            var base:Base = new Base(0x000000, stage.stageWidth, stage.stageHeight)
            addChild(base)
            X=stage.stageWidth/2;
            Y=stage.stageHeight/2;
            _centerPos.x = X
            _centerPos.y = Y
            R=0;        
            glow = new GlowFilter(0,1,16,16,2);
            colorTrans = new ColorTransform(0.8,0.9,1,0.9);
            blur = new BlurFilter(5,5);
            point=new Point(0,0);
            Sp = new Sprite();
            
            first=new Star(); 
            fc=first
            Sp.addChild(fc);
            
            while(i++<200){
                fc.next=new Star();
                Sp.addChild(fc.next);
                fc=fc.next;
            }
            
            bmpData = new BitmapData(stage.stageWidth,stage.stageHeight,true,0x0);
            bmp = new Bitmap(bmpData);
            addChild(bmp);
            addEventListener(Event.ENTER_FRAME,run);
        }
        
        private function run(event:Event):void{
            trace(_circleMotion.setPos(_centerPos).x, _circleMotion.setPos(_centerPos).y)
            R=90 + Math.atan2(_circleMotion.setPos(_centerPos).y - Y, _circleMotion.setPos(_centerPos).x - X) * 180 / Math.PI;       
            X+=Math.sin(R*(Math.PI/180))*S;
            Y-=Math.cos(R*(Math.PI/180))*S;
            fc = fc.next;
            if(fc==null)fc=first;
            
            glow.color = (Math.random()*0xFFFFFF)>>0;
            fc.filters = [glow];    
            
            Sp.addChild(fc);            
            fc.show(X,Y);
            
            star = first;            
            while(star!=null){
                star.x +=  star.vx;
                star.y +=  star.vy;
                star.z +=  star.vz;
                star.alpha -= 0.005;
                star.vx *=  1.01;
                star.vy *=  1.01;                
                star=star.next;
            }
            bmpData.draw(Sp);            
            bmpData.colorTransform(bmpData.rect,colorTrans);
            bmpData.applyFilter(bmpData,bmpData.rect,point,blur);
        }
    }
}

import flash.display.Sprite;
class Star extends Sprite{
   public var vx:Number;
   public var vy:Number;
   public  var vz:Number;
   public var next:Star;
    public function Star(){
        this.alpha=0;
        graphics.beginFill(0xffffff);
        graphics.drawCircle(0,0,3);
        graphics.endFill();
    }
    public function show(x:Number,y:Number):void{        
        vx = (Math.random()*2)-1;
        vy = (Math.random()*2)-1;
        vz = Math.random()*10-5;        
        this.z = 0;
        this.x = x;
        this.y = y;
        this.alpha=1;
    }
}

//
import flash.geom.Point;
class CircleMotion{
   private var _angle:Number = 0;
   private var _change:Number = 1;
   private var _radius:Number = 100;
   private var _point:Point = new Point()
    
    public function setPos(pos:Point):Point{
        var radian:Number = _angle * Math.PI / 180;
        _point.x = pos.x + _radius * Math.cos(radian);
        _point.y = pos.y + _radius * Math.sin(radian);
        _angle += _change;
        return _point
    }
}

import flash.display.Sprite
class Base extends Sprite{
    public function Base(color:int,w:int,h:int):void{
        graphics.beginFill(color, 1)
        graphics.drawRect(0,0,w,h)
        graphics.endFill()
    }
}

Forked