forked from: forked from: [PV3D] サンプル3 (3Dの視点を制御)

by asobuno2010 forked from forked from: [PV3D] サンプル3 (3Dの視点を制御) (diff: 38)
複数、でもBasicViewだ2
♥0 | Line 28 | Modified 2010-12-24 03:36:07 | MIT License
play

ActionScript3 source code

/**
 * Copyright asobuno2010 ( http://wonderfl.net/user/asobuno2010 )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/u61H
 */

//複数、でもBasicViewだ2
// forked from arga's forked from: [PV3D] サンプル3 (3Dの視点を制御)
// forked from clockmaker's [PV3D] サンプル3 (3Dの視点を制御)
package {
    import flash.events.*;
    import org.papervision3d.materials.*;
    import org.papervision3d.objects.primitives.*;
    import org.papervision3d.view.*;
    
    public class Sample3 extends BasicView {
        public function Sample3():void {
            // マテリアルを作成
            var material:WireframeMaterial = new WireframeMaterial(0xFF0000);
            
            // 3Dオブジェクトを作成
            var sphere1:Sphere = new Sphere(material, 300, 10, 10);
            var sphere2:Sphere = new Sphere(material, 300, 10, 10);
            var sphere3:Sphere = new Sphere(material, 300, 10, 10);
            
            // 座標を設定
            sphere1.x =  500;
            sphere2.x = -500;
            sphere3.x = -1500;
            
            /*効いてない
            sphere1.rotationX += ( stage.stageWidth /2 )/100;      
            sphere1.rotationY += ( stage.stageHeight /2 )/200;  
            */
            
            // 3Dシーンに追加して、表示させる
            scene.addChild(sphere1);
            scene.addChild(sphere2);
            scene.addChild(sphere3);
      
            // レンダリングを開始
            startRendering();
            
            // エンターフレームを設定
            addEventListener(Event.ENTER_FRAME, loop);
        }

        // エンターフレーム
        private function loop(e:Event):void {          

        
            
            
 /*
              var rotX:int = ( stage.stageWidth /2 )/100;
             var rotY:int = ( stage.stagHeitht /2 )/200;           
            
            sphere1.rotationX += rotX;
 */
 
 
            // カメラの位置を変える
            var rateX:Number = mouseX / stage.stageWidth;
            camera.x = -5000 * (rateX - 0.5);
            
            var rateY:Number = mouseY / stage.stageHeight;
            camera.y = 5000 * (rateY - 0.5);
        }






 /* きーぷ      
        // エンターフレーム
        private function loop(e:Event):void {
            // カメラの位置を変える
            var rateX:Number = mouseX / stage.stageWidth;
            camera.x = -5000 * (rateX - 0.5);
            
            var rateY:Number = mouseY / stage.stageHeight;
            camera.y = 5000 * (rateY - 0.5);
        }
 */       
        
        
    }
}