Papervision3D簡単なサンプル
/*
ポイント
1.BasicViewをCAMERA3Dで作成
2.BasicView.startRendering()で描画開始
3.cameraのターゲットを変更、破棄
4.ターゲットなし状態でのカメラ移動
*/
import org.papervision3d.view.BasicView;
import org.papervision3d.objects.primitives.Sphere;
import org.papervision3d.cameras.Camera3D;
var world=new BasicView(0,0,true,false,"CAMERA3D");
addChild(world);
var obj_list=new Array();//球体を格納する配列
var btn_container=new Sprite();
btn_container.x=10;
btn_container.y=stage.stageHeight-30;
addChild(btn_container);
//3D空間にそれを貼り付ける
for (var i=0; i<4; i++) {
//半径100、縦8分割、横8分割のボール(Sphere)を作る
var obj=new Sphere(null,100,8,8);
obj.x=i*300;
world.scene.addChild( obj);
obj_list.push(obj);
//ターゲットを変更するボタンを作成
var btn=new Sprite();
btn.name="btn"+i;
btn.graphics.beginFill(0x888888);
btn.graphics.drawRect(0,0,80,20);
btn.x=85*i;
var textfield=new TextField();
textfield.text=i;
textfield.mouseEnabled=false;
btn.addChild(textfield)
btn_container.addChild(btn);
btn.addEventListener(MouseEvent.CLICK,btnHandler);
}
//表示スタート
world.startRendering();
addEventListener(Event.ENTER_FRAME,enterFrame);
function enterFrame(event) {
world.camera.x=(mouseX-stage.stageWidth/2)*3;
world.camera.y=(stage.stageHeight/2-mouseY)*3;
trace(world.camera.x,world.camera.y,world.camera.z);
}
function btnHandler(event) {
var _name=event.target.name.substr(3,4);
trace(_name);
world.camera.target=obj_list[_name];
}
//ターゲットをなしにするボタン
btnNull.addEventListener(MouseEvent.CLICK,cameraTargetNullHandler);
function cameraTargetNullHandler(event) {
trace("ターゲット破棄");
world.camera.target=null;
world.camera.rotationX=0;
world.camera.rotationY=0;
world.camera.rotationZ=0;
}
関連記事
- Papervision3D簡単なサンプル
- Papervision3D 円柱(Cylinder)にテクスチャを貼り中からのぞく
- とうとうPapervision3D
- AS3 円運動のクラス
- AS3 EventをDispatchする。
- AS3 県の定義クラス PrefList
- AS3 TextFieldのプロパティ
- PHP/MySQL implodeでクエリを作成
- AS3 最前面にもってくるDisplayObjectContainer
- swfobjectのあるある
- PHP list()で初期化
- AS3 二次元配列
- Javascriptの配列内の重複を除く
- AS3 TweenerのsetTimeScaleを試すつもりが
- MDB2 結果の行数取得numRows()