Stardust 参考

import idv.cjcat.stardust.common.actions.*;
import idv.cjcat.stardust.common.clocks.*;
import idv.cjcat.stardust.common.initializers.*;
import idv.cjcat.stardust.common.math.*;
import idv.cjcat.stardust.twoD.actions.*;
import idv.cjcat.stardust.twoD.emitters.*;
import idv.cjcat.stardust.twoD.initializers.*;
import idv.cjcat.stardust.twoD.renderers.*;
import idv.cjcat.stardust.twoD.zones.*;
//Emitter2D.addInitializer(初期設定)
//(1)Clockを作る…パーティクル発生の頻度
//(2)Emitterを作ってclockをセット…エミッターって発生装置みたいなもの(?)
var emitter:Emitter2D = new Emitter2D(new SteadyClock(1));
var sprite:Sprite = new Sprite();
addChild(sprite);

//(3)Rendererを作る…画面表示用オブジェクト(?)
//(4)Renderer.addEmitter( Emitter )でエミッターをレンダラーにセット

//(5)Emitter.addInitializer( 発生場所とか発生させるspiteとか )でエミッターを初期設定


var renderer:DisplayObjectRenderer = new DisplayObjectRenderer(sprite);
renderer.addEmitter(emitter);
//パーティクル自身のクラスを指定(雨粒とか点とかを作るクラス)
var displayObjectClass:DisplayObjectClass = new DisplayObjectClass(RainDrop);
emitter.addInitializer(displayObjectClass);
// パーティクルの発生するエリアを指定→idv.cjcat.stardust.twoD.zones2DのZoneクラス)CircleZone,Line,RectZone,SectorZone,SinglePoint,LazySectorZoneなど
var position:Position = new Position(new Line(0, 0, 600, 0));
emitter.addInitializer(position);
//パーティクルの速度(?)を指定→idv.cjcat.stardust.twoD.zones 2DのZoneクラス)CircleZone,Line,RectZone,SectorZone,SinglePoint,LazySectorZoneなど
var velocity:Velocity = new Velocity(new LazySectorZone(1, 5));
emitter.addInitializer(velocity);
//パーティクルの固まり具合(?)の範囲
var mass:Mass = new Mass(new UniformRandom(1, 10));
emitter.addInitializer(mass);
// パーティクルの不透明度の範囲
var alpharr:Alpha = new Alpha(new UniformRandom(0.2, 1));
emitter.addInitializer(alpharr);
//パーティクルの寿命の範囲
var life:Life = new Life(new UniformRandom(2, 3));
emitter.addInitializer(life);
// パーティクルの粒の大きさの範囲
var scale:Scale = new Scale(new UniformRandom(0.01, 1));
emitter.addInitializer(scale);
//パーティクルの動く角度の範囲
var rotationn:Rotation = new Rotation(new UniformRandom(5,5));
emitter.addInitializer(rotationn);
//オメガって何ですか?角速度?
var omega:Omega = new Omega(new UniformRandom(5,5));
emitter.addInitializer(omega);

//Emitter2D.addAction(アクション)
//(6)Emitter.addAction( 寿命の長さとか重力とか )で実際の動きを設定
//パーティクルの動きを増幅する。例えば2にすれば同じ速度で2回動く(?)
var move:Move = new Move();
emitter.addAction(move);
//範囲指定x:0〜1000,y:0〜600
var deathZone:DeathZone = new DeathZone(new RectZone(0, 0, 1000, 600), true);
emitter.addAction(deathZone);
//ランダムな加速をさせる
var randomDrift:RandomDrift = new RandomDrift(2);
emitter.addAction(randomDrift);
//Fieldオブジェクトに対して重力をかける
var gravity:Gravity = new Gravity();
emitter.addAction(gravity);
//角速度omegaに対して回転数を指定
var spin:Spin = new Spin(5);
emitter.addAction(spin);


//???
var explode:Explode = new Explode(0,0,300,300);
emitter.addAction(explode);
//???
var spawn:Spawn = new Spawn();
emitter.addAction(spawn);

//(7)Event.ENTER_FRAMEやTimerEvent.TIMERに、Emitter.step()を関連づけて表示を更新
stage.addEventListener(MouseEvent.MOUSE_DOWN, downHandler);
function downHandler(e){
addEventListener(Event.ENTER_FRAME, emitter.step);

}


//参考サイト http://blog.rainyday.jp/flash/pv3d/stardust5.html