forked from: [PV3D] サンプル1 (3Dの初期表示)

by naokey0221 forked from [PV3D] サンプル1 (3Dの初期表示) (diff: 53)
♥0 | Line 38 | Modified 2011-03-16 16:25:58 | MIT License
play

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;
        }
    }
}