Particles
forked from キラキラ (diff: 51)
キラキラ
ActionScript3 source code
/**
* Copyright bradsedito ( http://wonderfl.net/user/bradsedito )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/xAMM
*/
// forked from okoi's キラキラ
//
// キラキラ
//
package
{
import flash.display.*;
import flash.events.*;
import com.greensock.*;
import com.greensock.easing.*;
import net.hires.debug.Stats;
public class Main extends Sprite
{
public static const DEPTH:int = 5000;
private static const STAR_NUM:int = 100;
private var stars:Array = new Array();
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init); // Entry
var i:uint = 0;
for ( i = 0; i < STAR_NUM; i++ )
{
var x:Number = Math.random() * stage.stageWidth;
var y:Number = Math.random() * stage.stageHeight;
var z:Number = Math.random() * DEPTH;
stars.push( new Star(x, y, z) );
}
addEventListener( Event.ENTER_FRAME, EnterFrame );
}
private function EnterFrame(e:Event):void
{
var i:uint = 0;
for ( i = 0; i < STAR_NUM; i++ )
{
stars[i].Update(stage);
}
graphics.clear();
graphics.beginFill( 0x000000 );
graphics.drawRect( 0, 0, stage.stageWidth, stage.stageHeight );
graphics.endFill();
for ( i = 0; i < STAR_NUM; i++ )
{
var s:Star = stars[i];
s.Draw(graphics);
}
}
}
}
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
import flash.display.Graphics;
import flash.display.Stage;
class Star
{
public var posX:Number;
public var posY:Number;
public var posZ:Number;
public var moveX:Number;
public var moveY:Number;
public var moveZ:Number;
public var alpha:Number;
public var step:int;
public var steps:int;
public var size:int;
public function Star(_x:Number, _y:Number, _z:Number)
{
Init(_x, _y, _z); // Init(_x, _y);
}
public function Init(_x:Number, _y:Number, _z:Number):void
{
var angle:Number = Math.random() * 360;
var speed:Number = Math.random() + 0.1;
posX = _x;
posY = _y;
posZ = _z;
moveX = Math.cos( angle * Math.PI / 180.0 ) * speed;
moveY = Math.sin( angle * Math.PI / 180.0 ) * speed;
moveZ = Math.sin( step * Math.PI / 180.0 ) * speed; // (Math.sin( step * Math.PI / 180 ) + 1) / 2;
step = int(Math.random() * 360);
steps = int(Math.random() * 10) + 1;
posZ = (Math.sin( step * Math.PI / 180 ) + 1);
//alpha = (Math.sin( step * Math.PI / 180 ) + 1) / 2;
size = 6; // Math.random()*1.5 + 1;
}
public function Update(stage:Stage):void
{
//alpha = (Math.sin( step * Math.PI / 180 ) + 1) / 2;
alpha = 1;
step = (step + steps) % 360;
posX += moveX;
posY += moveY;
posZ += moveZ;
if ( posX < 0 ) posX = stage.stageWidth;
if ( posX > stage.stageWidth ) posX = 0;
if ( posY < 0 ) posY = stage.stageHeight;
if ( posY > stage.stageHeight ) posY = 0;
if ( posZ < 0 )
{ };
//posZ = stage.stageHeight;
if ( posZ > 0 )
{ };
//TweenMax.to((Math.sin( step * Math.PI / 180 ) + 1) / 2;
//TweenMax
//posZ = 0;
}
public function Draw(g:Graphics):void
{
g.beginFill( 0xFFFFFF, alpha );
g.drawCircle( posX, posY, size );
g.endFill();
}
}