In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

forked from: forked from: forked from: papervision test

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

// forked from hacker_pdf0c4e1's forked from: forked from: papervision test
// forked from Johannes's forked from: papervision test
// forked from Johannes's papervision test
package {
    import flash.text.TextFormat;
    import flash.text.TextField;
    import flash.geom.Point;
    import flash.display.*;
    import flash.events.*;
    import org.papervision3d.materials.*;
    import org.papervision3d.materials.utils.*;
    import org.papervision3d.materials.shadematerials.*;
    import org.papervision3d.lights.*;
    import org.papervision3d.objects.*;
    import org.papervision3d.objects.primitives.*;
    import org.papervision3d.view.*;
    import org.papervision3d.core.geom.renderables.*;
    import org.papervision3d.cameras.*;
    import org.papervision3d.scenes.*;
    import org.papervision3d.render.*;


    public class Sample3 extends MovieClip {
        private var light:PointLight3D;
        private var player:Cube;
        private var r:Number = 0;
        private var point3d:Vertex3D = new Vertex3D( 0, 0, 0 );
        private var scene:Scene3D; 
        private var camera:Camera3D;
        private var viewport:Viewport3D;
        private var renderer:BasicRenderEngine;
        private var bg:Sprite;
        private var downPoint:Point = new Point();
        
        private var testTF:TextField = new TextField();
        
        
        
        public function Sample3():void {
            
            
            scene = new Scene3D();
            camera = new Camera3D();
            camera.z = -1000;

            renderer = new BasicRenderEngine();
            
            viewport = new Viewport3D(stage.stageWidth, stage.stageHeight,false, false, true, true);
 
             init();
        
        }
 
         private function init():void{
 
            bg = new Sprite();
            bg.graphics.beginFill( 0xffcccc );
            bg.graphics.drawRect( 0, 0, 450, 450);
            bg.graphics.endFill();
            addChild( bg );
            
            testTF.defaultTextFormat = new TextFormat( null, null, 0x000000 );
            testTF.text = "AAAAAAAAAAAAAAA";
            testTF.width = 450;
            addChild( testTF );
 
            addChild(viewport);
            
            var mat:MaterialsList = new MaterialsList();
            mat.addMaterial(new WireframeMaterial( 0xff0000 ), "all" );
            
            player = new Cube( mat, 500, 500, 500, 1, 1, 1 );
            scene.addChild(player);

            
            camera.target = player;
            
            bg.addEventListener( MouseEvent.MOUSE_DOWN, stageDownHandler );
            renderer.renderScene(scene, camera, viewport);
           
        }

        
        private function stageDownHandler( e:MouseEvent ):void{
        
            addEventListener( Event.ENTER_FRAME, loop );
            addEventListener( MouseEvent.MOUSE_UP, stageUpHandler );
            downPoint.x = mouseX;
            downPoint.y = mouseY;
        
        }
        
        private function stageUpHandler( e:MouseEvent ):void{
        
            removeEventListener( Event.ENTER_FRAME, loop );
            removeEventListener( MouseEvent.MOUSE_UP, stageUpHandler );
            
            downPoint.x = 0;
            downPoint.y = 0;
            
        }


        
        
        private function loop(e:Event):void {
            
            var distVertex3d:Vertex3D = new Vertex3D( downPoint.x + ( mouseX - downPoint.x ), downPoint.y + ( downPoint.y - mouseY ) ,0 );
            
            player.geometry.faces[3].vertices[1].x = distVertex3d.x;
            player.geometry.faces[3].vertices[1].y = distVertex3d.y;
             
            renderer.renderScene(scene, camera, viewport);
            
            
        }
    }
}