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.*;
import idv.cjcat.stardust.twoD.fields.*;
import idv.cjcat.stardust.twoD.deflectors.CircleDeflector;

// フレームアクションでPapervision3D
import org.papervision3d.cameras.Camera3D;

import org.papervision3d.events.*;
import org.papervision3d.events.InteractiveScene3DEvent;

import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.materials.WireframeMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.view.BasicView;
import org.papervision3d.view.*
import org.papervision3d.materials.*


var world:BasicView = new BasicView();
addChild(world);
world.startRendering();
// テクスチャー(=マテリアル)を作ります
//var material:BitmapAssetMaterial = new BitmapAssetMaterial('EarthMap')
var material = new WireframeMaterial(0x999999, .5);
material.doubleSided = true;

var obj = new Plane(material, 5000, 5000, 6,6);
world.scene.addChild(obj);
world.camera.x = 800;
world.camera.z = 600;


//Emitter2D.addInitializer(初期設定)
//(1)Clockを作る…パーティクル発生の頻度
//(2)Emitterを作ってclockをセット…エミッターって発生装置みたいなもの(?)
var clock:SteadyClock =new SteadyClock(5);
var emitter=new Emitter2D(clock);
var clickflag:Boolean = false;//パーティクル生成状態判定用
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(star01);
emitter.addInitializer(displayObjectClass);


//パーティクルの速度(?)を指定→idv.cjcat.stardust.twoD.zones 2DのZoneクラス)CircleZone,Line,RectZone,SectorZone,SinglePoint,LazySectorZoneなど
var velocity:Velocity = new Velocity(new LazySectorZone(5, 1));
emitter.addInitializer(velocity);
//パーティクルの固まり具合(?)の範囲
var mass:Mass = new Mass(new UniformRandom(1, 10));
emitter.addInitializer(mass);
// パーティクルの不透明度の範囲
var alpharr:Alpha = new Alpha(new UniformRandom(0.1, 1));
emitter.addInitializer(alpharr);
//パーティクルの寿命の範囲
var life:Life = new Life(new UniformRandom(30, 0));
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);

// パーティクルの発生するエリアを指定→idv.cjcat.stardust.twoD.zones2DのZoneクラス)CircleZone,Line,RectZone,SectorZone,SinglePoint,LazySectorZoneなど
var position:Position = new Position(new SinglePoint(300,300));
emitter.addInitializer(position);
//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(1);
emitter.addAction(spin);
// 寿命を有効化
var age:Age= new Age();
emitter.addAction(age);
//消えるを有効化
var deathLife:DeathLife= new DeathLife();
emitter.addAction(deathLife);

//???
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.CLICK, downHandler);
function downHandler(e){
if( !clickflag ){// falseなら
clock.ticksPerCall = 5;//パーティクルを1フレごとに5個作る
clickflag = true;
}else{//trueなら
clock.ticksPerCall = 0;//パーティクルは0;
clickflag =false;
}
addEventListener(Event.ENTER_FRAME, emitter.step);

//ENTER_FRAME停止


}

//addEventListener(Event.ENTER_FRAME, emitter.step);




////////////////////////////////////////////

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