forked from: Sample of ParticleField 1/21
...
@author ...
// forked from mtok's Sample of ParticleField
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import org.papervision3d.core.view.IView;
import org.libspark.thread.Thread;
import org.libspark.thread.EnterFrameThreadExecutor;
/**
* ...
* @author ...
*/
public class Pv3d011 extends Sprite
{
private var _view:CustomView;
public function Pv3d011()
{
addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
}
private function addedToStageHandler(e:Event):void
{
//ステージを左上の隅に揃えるよう指定します。
stage.align = StageAlign.TOP_LEFT;
//Flash アプリケーションのサイズが固定され、Flash Player のウィンドウのサイズが変更された場合でも、サイズが維持されるように指定します。
stage.scaleMode = StageScaleMode.NO_SCALE;
//1秒あたりのフレーム数で表されます。
stage.frameRate = 30;
_view = new CustomView(); //下記関数を参考
addChild(_view);
}
}
}
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.events.Event;
import flash.net.URLRequest;
import flash.system.ApplicationDomain;
import flash.system.LoaderContext;
import org.papervision3d.view.BasicView;
import org.papervision3d.objects.special.ParticleField;
import org.papervision3d.materials.special.ParticleMaterial;
internal class CustomView extends BasicView {
private var bmpData:BitmapData;
private var pf:ParticleField;
public function CustomView() {
super(0, 0, true, true);
buildScene(); //下記関数を参考、パーティクルをsceneに配置
startRendering(); //レンダリング
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
private function enterFrameHandler(e:Event):void
{
//下記で作成したパーティクル(四角形)を回転させている
pf.rotationX += 1;
pf.rotationY += 1;
}
protected function buildScene():void {
var mf:ParticleMaterial = new ParticleMaterial(0x0000ff, 1);
pf = new ParticleField(mf, 1000, 5, 1000, 1000, 1000);
scene.addChild(pf);
camera.x = 0;
camera.y = 0;
camera.z = -200;
}
}