flash on 2010-9-5

by Tamanegi_kenshi
♥0 | Line 77 | Modified 2010-09-06 00:36:50 | MIT License
play

ActionScript3 source code

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

// forked from Tamanegi_kenshi's [練習]
package {
    import flash.filters.BlurFilter;
    import flash.display.BlendMode;
    import flash.filters.GlowFilter;
    import flash.display.AVM1Movie;
    import flash.media.Camera;
    import flash.text.TextField;
    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.display.DisplayObject;
    import org.papervision3d.cameras.Camera3D;
    import org.papervision3d.scenes.Scene3D;
    import org.papervision3d.view.Viewport3D;
    import org.papervision3d.render.BasicRenderEngine;
    import org.papervision3d.objects.primitives.*;
    import org.papervision3d.materials.ColorMaterial;
    import org.papervision3d.events.InteractiveScene3DEvent;
    
    
    import caurina.transitions.Tweener;
    
    [SWF(backgroundColor = 0x000000)]
    
    public class FlashTest extends Sprite {
        private var mc:MovieClip;
        private var camera:Camera3D;
        private var scene:Scene3D;
        private var viewport:Viewport3D;
        private var renderer:BasicRenderEngine;
       
        private var plane1:Sphere;
        
        private var planeNum:int = 20;
        private var planeArr:Array = [];
        private var angleX:int = 0;
        private var num:int = 0;
        
        
        public function FlashTest() {
            init();
            
        }//FlashTest
        private function init():void{
            camera = new Camera3D();
            scene = new Scene3D();
            viewport = new Viewport3D(465, 465);
            renderer = new BasicRenderEngine();
            
            camera.z = 0;
            
            viewport.interactive = true;
            addChild(viewport);
            
             for(var i:int = 0; i < 500; i++){
                 
                 
             var plane:Sphere = new Sphere(null, Math.random() * 5, 5, 5);
             var radian:Number = 360 / 25 * i * Math.PI / 180;
             plane.x = Math.cos(radian) * 300;
             plane.y = Math.sin(radian) * 300;
             plane.z = i * 200;
             
            // plane.filters = [new GlowFilter(0xffff00, 1, 5, 5), new BlurFilter(5, 5, 1)];
             scene.addChild(plane);
             planeArr.push(plane);
       
             }
            
            addEventListener(Event.ENTER_FRAME, onEnter);            
      
        }
     //   private function onPlane(e:InteractiveScene3DEvent):void{
          //event.target.scaleX = 2;
     //   }


       
       
       private function onEnter(e:Event):void{
        //    camera.rotationY += 2;
     //       camera.rotationZ -= 1;
         //   camera.rotationX += 1;
          
          var dx:Number = planeArr[num].x - camera.x;
         var dy:Number = planeArr[num].y - camera.y;
          var dz:Number = planeArr[num].z - camera.z;
          var angleY:Number = Math.atan2(dz, dx);
        camera.rotationY = angleY * 180 / Math.PI;
         var angleX:Number = Math.atan2(dy, dz);
         camera.rotationX = angleX * 180 / Math.PI;
          var angleZ:Number = Math.atan2(dx, dy);
          camera.rotationZ = angleZ * 180 / Math.PI;
         
          
          
          
          var vx:Number = (planeArr[num].x - camera.x) * 0.001;
          var vy:Number = (planeArr[num].y - camera.y) * 0.001;
          var vz:Number = (planeArr[num].z - camera.z) * 0.001;
         camera.x += vx;
          camera.y += vy;
          camera.z += vz;
          if(camera.x < planeArr[num].x - 0.01 || camera.x > planeArr[num].x - 0.01){
              num++
          }

        //  camera.rotationX = (232 - mouseY) * 0.1;  
            
        //    angleX += (232 - mouseX) * 0.05;
        //    var radian:Number = angleX * Math.PI / 180;
        ////    camera.x = Math.cos(radian) * 500;
       //     camera.z = Math.sin(radian) * 500;
        //    
        //    var dz:Number = 0 - camera.z;
        //    var dx:Number = 0 - camera.x;
        //    var angl:Number = Math.atan2(dx, dz);
        //    camera.rotationY = angl * 180 / Math.PI;
            
            
            renderer.renderScene(scene, camera, viewport);
        }




    }
}