[Papervision3D] fantastic site - was this made in papervision?

Mikenku livelym1 at nku.edu
Fri Jun 27 11:11:52 PDT 2008


Probably not a Papervision3D site - just a simple image "swf" sliding site
with swf movie transitions- one cool trick you can do with sites like this
(and Papervision3D) is to stick animated objects on top of your sliding
image (in the swf) this gives the appearance of 3D - like the animated cow
for example. If you want to do a Pano in Papervision3D stick the image in an
SWF so you can to do the cow trick above - here is the Pano Software for
Flex Papervision3D


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
applicationComplete="myLecData.send()" backgroundGradientColors="[#AEE8F4,
#131617]" backgroundGradientAlphas="[1.0, 1.0]">

<mx:HTTPService id="myLecData" url="XML/myXML.xml"
result="resultHandler(event)" />


<mx:Script>
        <![CDATA[
                import mx.collections.ArrayCollection;
                import mx.rpc.events.ResultEvent;
                import org.papervision3d.core.proto.CameraObject3D;
                import flash.filters.DropShadowFilter;
               
               
//Import for Reflection
     
        import flash.display.Bitmap;
        import flash.display.BitmapData;
        import flash.geom.Matrix;
        import flash.geom.Point;
        import flash.filters.BlurFilter;
       
//Gradient Bevel Filter       
        import flash.filters.BitmapFilterQuality;
        import flash.filters.GradientBevelFilter;

//Import Papervision Classes
          
             import org.papervision3d.scenes.*;
             import org.papervision3d.cameras.*; 
             import org.papervision3d.objects.*;
             import org.papervision3d.objects.primitives.*;
             import org.papervision3d.materials.*;
             import org.papervision3d.materials.shadematerials.*;
             import org.papervision3d.materials.utils.MaterialsList;
             import org.papervision3d.lights.*;
             import org.papervision3d.render.*;
             import org.papervision3d.view.*;
             import org.papervision3d.events.*;
             import org.papervision3d.core.*;
             import org.papervision3d.lights.PointLight3D;
             import flash.filters.DropShadowFilter;
             import flash.events.KeyboardEvent;
            
             import mx.controls.HSlider;


          
                 import caurina.transitions.*;
                
                 //Add Cairngorm
                 import
net.davidtucker.ContactManager.model.SampleModelLocator;
                 [Bindable] private var modelLocator:SampleModelLocator =
SampleModelLocator.getInstance();
                
               
                 private var numOfItems:int = 15;
                 private var radius:Number = 300;
                 private var anglePer:Number = (Math.PI*2) / numOfItems;
                
                 // Apply the drop shadow and gradientDevel filter to the
box.
                 private var dropShadowFilter:DropShadowFilter;
                 private var gradientBevel:GradientBevelFilter;
                 private var gradientBevel2:DropShadowFilter;
                
                 //Click Variables
                 private var firstClick:Boolean=false;
                 private var youClickedMe:Object;
                
                
                
                
                 //private var dsf:DropShadowFilter = new
DropShadowFilter(10, 45, 0x000000, 0.3, 6, 6, 1, 3);
               
                import mx.collections.ArrayCollection;
                import mx.rpc.events.ResultEvent;
                import mx.events.EffectEvent;
        import mx.core.UIComponent;
     
               
               
             public var angleX:Number = anglePer;
         public var dest:Number = 1;
             private var theLight:PointLight3D;
           
           
           
           
        //Papervision Engine
           
             private var viewport:Viewport3D; 
             private var scene:Scene3D; 
             private var camera: FreeCamera3D;
             private var renderer:BasicRenderEngine;
             
         private var planeArray:Array = new Array();
         [Bindable]
         public var object:Object;
        
         private var arrayPlane:Object;
         private var p1:Plane;
         private var p2:Plane;
         private var p3:Plane;
         private var p4:Plane;
           
             //Parameters for Keyboard and Cylinders    
        
             private var speed:Number=10; //Forward Back
            
            
             private var rotspeed:Number=0;
              //Rotation
             private var highspeed:Number=30; //Flying
           
         //Declare Buttons and Boolen Values Set to false to not execute in
the renderer
            
             private var leftArrow:Boolean = false;
             private var rightArrow:Boolean = false;
             private var upArrow:Boolean = false;      
             private var downArrow:Boolean = false;                    
             private var pageUp:Boolean = false;       
             private var pageDown:Boolean = false;
            
             //Array Collection
             [Bindable]
             private var allMyData:ArrayCollection;
            
           
           
            private function resultHandler(event:ResultEvent):void{
           
            allMyData=event.result.myData.myLecture;
           
            init();
           
            }
           
           
           
         
         //Initiation function   

         private function init():void 
             {         
               
         viewport = new Viewport3D(pv3dCanvas.width, pv3dCanvas.height,
false, true); 
         pv3dCanvas.rawChildren.addChild(viewport); 
         viewport.buttonMode=true;
        
         renderer = new BasicRenderEngine();
         scene = new Scene3D(); 
         camera = new FreeCamera3D();
         camera.zoom = 5;
         camera.z = 0;
       
         createObjects(); 
         addEventListeners();
        
       

        //dropShadowFilter = new DropShadowFilter(distance, angle, color,
alpha, x blur, y blur, strength, quality, inner shadow boolean, knockout
boolean, hide object boolean);
         dropShadowFilter = new DropShadowFilter(10, 45, 0x000000, .5, 5, 5,
1, 1);
               
         //viewport.filters = [filter1 to apply, filter2 to apply];
             pv3dCanvas.filters = [dropShadowFilter];
        
        
         
             }
                
//Create Objects function          


        private function createObjects():void{
        for(var i:uint=0; i<allMyData.length; i++)
        {
                /* var shadow:DropShadowFilter = new DropShadowFilter();
                shadow.distance = 10;
        shadow.angle = 25; */
               
               
                var bam1:BitmapFileMaterial = new
BitmapFileMaterial("images/"+allMyData[14-i].myLinks);
                bam1.oneSide = false;
                bam1.smooth = true;
        bam1.interactive = true;
               
                var bam2:BitmapFileMaterial = new
BitmapFileMaterial("images/"+allMyData[14-i].myVideo);
                bam2.oneSide = false;
                bam2.smooth = true;
        bam2.interactive = true;
       
        var bam3:BitmapFileMaterial = new
BitmapFileMaterial("images/"+allMyData[14-i].myLec);
                bam3.oneSide = false;
                bam3.smooth = true;
        bam3.interactive = true;
       
       
       
               
                p1 = new Plane(bam1, 120, 90, 1, 1);
                p1.x = Math.cos(i*anglePer) * radius;
                p1.z = Math.sin(i*anglePer) * radius;
                p1.y = -100;
                p1.rotationY = (-i*anglePer) * (180/Math.PI) + 90;
               
                p2 = new Plane(bam2, 120, 90, 1, 1);
                p2.x = Math.cos(i*anglePer) * radius;
                p2.z = Math.sin(i*anglePer) * radius;
                p2.y = 0;
                p2.rotationY = (-i*anglePer) * (180/Math.PI) + 90;
               
                p3 = new Plane(bam3, 120, 90, 1, 1);
                p3.x = Math.cos(i*anglePer) * radius;
                p3.z = Math.sin(i*anglePer) * radius;
                p3.y = 100;
                p3.rotationY = (-i*anglePer) * (180/Math.PI) + 90;
               
               
                       
                scene.addChild(p1);
                scene.addChild(p2);
                scene.addChild(p3);
                //scene.addChild(p4);
               
                p1.extra={pIdent:"in"};
               
                p1.extra2={myIdent:3*(allMyData.length-i)-1};
               
                p1.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS,
toggler);
                                            
        p2.extra={pIdent:"in"};
               
                p2.extra2={myIdent:3*(allMyData.length-i)-2};
               
                p2.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS,
toggler);
               
                p3.extra={pIdent:"in"};
               
                p3.extra2={myIdent:3*(allMyData.length-i)-3};
               
                p3.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS,
toggler);
               
               
                                                    
    
        }
       
       
      
       
            
       
       
        }  
       
        private function toggler(event:InteractiveScene3DEvent):void
                {
                       
                       
               
                        // if the cube's position is "in", move it out else
move it back
                        if (event.target.extra.pIdent == "in")
                        {
                       
                               
                                if(firstClick==true){
                               
                               
                                moveBack(youClickedMe);
                               
                                }
                               
                                    trace(event.target.extra2.myIdent);
                                   
                                moveOut(event.target);
                               
                        }
                        else
                        {  
                                moveBack(event.target);
                        }
                       
                      firstClick=true;  
                       
                }
              
                private function moveOut(object:Object):void
                {
                        youClickedMe = object;
                       
                        trace(object +" my object");
                        var str:String = object.valueOf();
                        var re:RegExp = /:/;
                        var results:Array = str.split(re);
                        trace (results[0]+" myNumber");
                       
                       
                        // for each cube that was not selected, remove the
click event listener
                        for each (var arrayPlane:Object in planeArray)
                        {
                                if (arrayPlane != object)
                                {
                                       
arrayPlane.removeEventListener(InteractiveScene3DEvent.OBJECT_PRESS,
toggler);
                                }
                        }
                       
                        //right.enabled=false;
                        //left.enabled=false;
                      
                        // move the selected cube out 1000 and rotate 90
degrees once it has finished moving out
                        Tweener.addTween(object, {scaleX:1.2, time:0.5,
transition:"easeInOutSine", onComplete:rotateCube,
onCompleteParams:[object]});
                        Tweener.addTween(object, {scaleY:1.2, time:0.5,
transition:"easeInOutSine", onComplete:rotateCube,
onCompleteParams:[object]});
                        // set the cube's position to "out"
                        object.extra = {pIdent:"out"};
                      
                        // move the camera out 1000 and move it the to same
y coordinate as the selected cube
                        //Tweener.addTween(camera, {x:1000, y:object.y,
rotationX:0, time:0.5, transition:"easeInOutSine"});
                }
              
                private function moveBack(object:Object):void
                {
                        // for each cube that was not selected, add the
click event listener back
                        for each (var arrayPlane:Object in planeArray)
                        {
                                if (arrayPlane != object)
                                {
                                       
arrayPlane.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, toggler);
                                }
                        }
                      
                        // move the selected cube back to 0 and rotate 90
degrees once it has finished moving back
                        Tweener.addTween(object, {scaleX:1, time:0.5,
transition:"easeInOutSine", onComplete:rotateCube,
onCompleteParams:[object]});
                        Tweener.addTween(object, {scaleY:1, time:0.5,
transition:"easeInOutSine", onComplete:rotateCube,
onCompleteParams:[object]});
                      
                        // set the cube's position to "in"
                        object.extra = {pIdent:"in"};
                      
                        // move the camera back to its original position
                        //Tweener.addTween(camera, {x:0, y:1000,
rotationX:-30, time:0.5, transition:"easeInOutSine"});
                        //right.enabled=true;
                        //left.enabled=true;
              
              
                }
               
                private function goBack():void
                {
                        // for each cube that was not selected, add the
click event listener back
                        for each (var arrayPlane:Object in planeArray)
                        {
                                if (arrayPlane != object)
                                {
                                       
arrayPlane.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, toggler);
                                }
                        }
                      
                       
              
              
                }
               
               
               


                private function rotateCube(object:Object):void
                {
                        //object.rotationX = 0;
                        //Tweener.addTween(object, {rotationZ:0, time:0.5,
transition:"easeOutSine"});
                }
       
       
       
        private function addEventListeners():void{
    this.addEventListener(Event.ENTER_FRAME, render);
       
       
        }
              
//Enter Frame Listener function             
      
private function render(e:Event):void{ 
                        
              renderer.renderScene(scene, camera, viewport);

              camera.rotationY =myHSlider.value+114;
             
               if(upArrow){
               camera.z += speed*Math.cos(camera.rotationY*Math.PI/180);
               camera.x += speed*Math.sin(camera.rotationY*Math.PI/180);
               }
              
               if(downArrow){
               camera.z -= speed*Math.cos(camera.rotationY*Math.PI/180);
               camera.x -= speed*Math.sin(camera.rotationY*Math.PI/180);
               }
              
               //Move Camera Up and Down
              
               if(pageUp){
               camera.x += highspeed;
              
               }
               if(pageDown){
               camera.x -= highspeed;
               }
              
           
                   
         }
        
private function moveRight():void
{  
        dest++;
        Tweener.addTween(this, {angleX:dest*anglePer, time:0.5});
        //goBack();
}

private function moveLeft():void
{
        dest--;
        Tweener.addTween(this, {angleX:dest*anglePer, time:0.5});
        //goBack();
}  



        ]]>
</mx:Script>
        <mx:Canvas width="1014" height="691">
               
       
        <mx:Canvas id="pv3dCanvas" x="0" y="0" width="1004" height="621"
borderColor="#110101" backgroundColor="#000000" alpha="1.0"
backgroundAlpha="1.0" themeColor="#000000" color="#020202"> 
        </mx:Canvas>
       
        <mx:HSlider id="myHSlider" x="145" y="649" width="725"
tickInterval="5" snapInterval="1"  minimum="0" maximum="336" value="-180"
liveDragging="true"/>
        </mx:Canvas>
</mx:Application>


package com.unitzeroone.pv3d
{
        import flash.events.Event;
       
        import mx.core.MovieClipAsset;
       
        import org.papervision3d.cameras.FreeCamera3D;
        import org.papervision3d.materials.MovieMaterial;
        import org.papervision3d.objects.primitives.Sphere;
        import org.papervision3d.view.BasicView;

        public class SpherePano extends BasicView
        {
                [Embed(source="/assets/pano.swf")]
                private var panoAsset:Class;

                protected var panoSphere:Sphere;
                protected var sphereMat:MovieMaterial;
               
                /**
                 * @Author Ralph Hauwert
                 */
                public function SpherePano()
                {
                        //Setup the basic view to do autoscaling, no
interactivity, and use a free camera.
                        super(0, 0, true, false, FreeCamera3D.TYPE);
                        init();
                        startRendering();
                }
               
                private function init():void
                {
                        //Set the background to black
                        opaqueBackground = 0;
                       
                        //Create the pano material
                        var movieAsset:MovieClipAsset = new panoAsset();
                        sphereMat = new MovieMaterial(movieAsset, false);
                        sphereMat.opposite = true;
                        sphereMat.animated = true;
                       
                        //Smooth is heavy, but it makes stuff look
nicer...you could make it switch dynamically.
                        sphereMat.smooth = true;
                       
                        //Create the panosphere.
                        panoSphere = new Sphere(sphereMat, 25000, 30,30);
                        scene.addChild(panoSphere);
                       
                        //position the camera in the center of the sphere,
and set it's properties for focus and zoom.
                        camera.x = camera.y = camera.z = 0;
                        camera.focus = 300;
                        camera.zoom = 2;
                }
               
                override protected function
onRenderTick(event:Event=null):void
                {
                        //Rotate the camera left and right.
                        camera.rotationY += (mouseX-(stage.width/2))/50;
                        //Rotate the camera up and down
                        camera.rotationX -= (mouseY-(stage.height/2))/50;
                        //Lock the camera up down rotation so you can't do
"loopings".
                        if(camera.rotationX <= -90){
                                camera.rotationX = -90;
                        }else if(camera.rotationX >= 90){
                                camera.rotationX = 90; 
                        }
                        //Render as usual
                        super.onRenderTick(event);
                }
               
        }
}







 

tom_s wrote:
> 
> can anyone tell me if this site is made in papervision? 
> 
>  http://www.aglassandahalffullproductions.com/?campaign_id=cdm01#
> http://www.aglassandahalffullproductions.com/?campaign_id=cdm01# 
> 
> 
> am interested in learning how this site was done if anyone has any links
> they can share?
> 


tom_s wrote:
> 
> can anyone tell me if this site is made in papervision? 
> 
>  http://www.aglassandahalffullproductions.com/?campaign_id=cdm01#
> http://www.aglassandahalffullproductions.com/?campaign_id=cdm01# 
> 
> 
> am interested in learning how this site was done if anyone has any links
> they can share?
> 

-- 
View this message in context: http://www.nabble.com/fantastic-site---was-this-made-in-papervision--tp18089167p18160861.html
Sent from the Papervision3D mailing list archive at Nabble.com.




More information about the Papervision3D mailing list