David Harris's Technology Blog

ColdFusion, Flex, and other stuff...   (and 341,536 hours, 14 mins in to my plan for global domination)

Search:

Calendar:

Sun Mon Tue Wed Thu Fri Sat
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Subscribe:

Enter your email address to subscribe to this blog.

Archives By Subject:

Tags:

action script adobe air ajax cfug coldfusion flash flex frameworks free software fxug general jpgmetadatareader mac off topic opensource papervision spry

Recent Entries:

No recent entries.

Top Posts:

Recent Comments:

Top Commenters:

My Links:

RSS:


Simple PaperVision3D Blurring example : source code

As promised, here is the source code for the simple blurring example:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application
   xmlns:mx="http://www.adobe.com/2006/mxml"
   backgroundColor="0x000000"   
   creationCompleteEffect="Fade"
   creationComplete="handleCreationComplete()"
   >

   
   <mx:Script>
      <![CDATA[
         import org.papervision3d.objects.Cube;
         
         //Do the imports
         import org.papervision3d.objects.DisplayObject3D;
         import org.papervision3d.cameras.Camera3D;
         import org.papervision3d.scenes.Scene3D;
         import org.papervision3d.objects.Plane;
         import org.papervision3d.materials.BitmapMaterial;
         import org.papervision3d.core.proto.MaterialObject3D;
      
         
         public var scene:Scene3D;
         public var camera:Camera3D;

         public var posX:Number;
         public var posY:Number;

         public function handleCreationComplete():void
         {
            
            camera = new Camera3D( new DisplayObject3D() );//make a camera             
            camera.zoom = 20;//zoom it             
            scene   = new Scene3D( sceneTarget );//make my scene             
            
            //Add my first cube
            var   c:Cube   = scene.addChild( new Cube(null,15,15,200,2,2,2) , "oneCube") as Cube;               

            //set the container of the cube...
            //because I am using "Scene3D" the container isn't automatically created
            c.container   = sceneTarget;         
            
            addEventListener( Event.ENTER_FRAME , handleEnterFrame );
            
            
         }
         
         
         public function handleEnterFrame( event:Event ):void
         {
            
            posX   = (mouseX / width) - 0.5;
            posY   = (mouseY / height) - 0.5;
            
            var factor:Number   = 50;
            
            //get the cube
            var c:Cube = scene.getChildByName( "oneCube" ) as Cube;
            
            //blur it
            var blur:BlurFilter   = new BlurFilter();
            
            blur.blurX = Math.abs( factor * posX );
            blur.blurY = Math.abs( factor * posY );
            
            c.container.filters   = [blur];
            
            //spin it...
            c.rotationX += factor * posY;
            c.rotationY += factor * posX;
         
            scene.renderCamera( camera );
         
            
         
         }
         
      ]]>
   </mx:Script>
   
   
   
   
   <mx:Panel
      width="100%"
      height="100%"
      verticalAlign="middle"
      horizontalAlign="center"
   >

      <mx:Canvas
         id="sceneTarget"
      />

   </mx:Panel>
   
</mx:Application>

...file attached to for your downloading pleasure...

yes, it is very simple, but I was learning how to work with filters...and nothing else! ;-)

Related Blog Entries

Comments
this is nice!
but yer blog messed up the code formatting.
also yer download link is broken. and i have a
quick question...

how does this work w/o importing
import flash.filters.*;
# Posted By fontvir.us | 6/15/07 5:49 AM
Hi,

I've tied up the code, and fixed the download (hopefully)

regarding the import:
I don't really know either!
I had a quick look at the docs, and the examples in there included an import...
I relied on the IDE to do the required imports, so didn't notice this until you mentioned it.
# Posted By David | 6/19/07 10:44 AM
I pasted the source code... it compiles in Flex Builder... but it's missing something, the object?
It just displays an empty window when I run it.
# Posted By Tom | 10/12/07 7:04 PM
Hi Tom,

I thing the PV3D code has changed from when I created this sample.

I think it may be something to do with the materials on the cube, and that they default to "null" now.

This code example is out of date now, and I'm not sure what version of PV3D it was compiled with.
# Posted By David | 10/14/07 11:35 AM
Hi Tom,

Regarding the version of PV3D I comipled this on, when I checked the related post, I said there I had done it on RC1, and that the next release "broke" it
# Posted By David | 10/14/07 11:38 AM
var c:Cube = scene.getChildByName( "oneCube" ) as Cube;
bugs for me but!

please help
# Posted By container | 7/13/09 12:27 PM