forked from: flash on 2010-7-17
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
archived:2017-03-20 00:52:37
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()
}
}