forked from: [PV3D] サンプル1 (3Dの初期表示)
forked from [PV3D] サンプル1 (3Dの初期表示) (diff: 53)
ActionScript3 source code
/**
* Copyright naokey0221 ( http://wonderfl.net/user/naokey0221 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/A0XQ
*/
// forked from clockmaker's [PV3D] サンプル1 (3Dの初期表示)
package {
import flash.events.KeyboardEvent;
import flash.events.Event;
import org.papervision3d.materials.*;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.view.*;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.KeyboardEvent;
public class Sample1 extends BasicView {
private var sphere : Sphere;
private var sphere2 : Sphere;
private var sphere3 : Sphere;
public function Sample1():void {
// マテリアルを作成
var material:WireframeMaterial = new WireframeMaterial(0xFF0000);
// 3Dオブジェクトを作成
sphere = new Sphere(material, 300, 30, 30);
sphere2 = new Sphere(material, 100, 10, 10);
sphere3 = new Sphere(material, 400, 50, 50);
// 3Dシーンに追加して、表示させる
scene.addChild(sphere);
//scene.addChild(sphere2);
//scene.addChild(sphere3);
sphere.x= -200;
//sphere3.x=300;
// レンダリングを開始
startRendering();
//エンターフレームを設定
addEventListener(Event.ENTER_FRAME, loop);
//addEventListener(MouseEvent.CLICK , onClick );
// stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
//stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
}
private function onClick(e:MouseEvent):void{
sphere.x += 10;
//sphere2.x -= 20;
//sphere3.x += 10;
}
private function loop(e:Event):void {
// 球面をY軸方向に回転
sphere.rotationZ += 10;
// sphere.x=100+50Math.cos(Math.PI)
//sphere.y=
//sphere2.rotationY -= 2;
//sphere3.rotationZ += 1;
// カメラの位置を変える
var rateX:Number = mouseX / stage.stageWidth;
var targetX:Number = -5000 * (rateX - 0.5);
camera.x += (targetX - camera.x) * 0.2;
var rateY:Number = mouseY / stage.stageHeight;
var targetY:Number = 5000 * (rateY - 0.5);
camera.y += (targetY - camera.y) * 0.2;
}
}
}