[Papervision3D] keyboardlistener.... what is going wrong here?

Robin Kollau rackdoll at gmail.com
Sun Nov 18 12:08:58 PST 2007


HI there,

Your keyCode is a UINT.... so i think Keyboard.UP isent the right
variable to use.... it should be a number representing your "up" key.







On Nov 18, 2007 8:52 PM, Peter B. <djthb at gmx.at> wrote:
> Hi there!
>
> So... my english is not quite well, so please be kind to me :)
>
> i have coded a Keyboard listener for PV with a collada mesh.... so this
> is going well for just 30 steps or so and then the collada mesh flips
> from one position to another position.... so why this?
>
> i am going crazy with this problem, so if anybody knows a solution,
> please be so kind and post it here :)
>
> thx
>
> thats the code
>
> package {
>     import flash.display.*;
>     import flash.events.*;
>     import flash.ui.*;
>
>     import org.papervision3d.cameras.Camera3D;
>     import org.papervision3d.events.*;
>     import org.papervision3d.materials.BitmapMaterial;
>     import org.papervision3d.materials.MaterialsList;
>     import org.papervision3d.objects.Collada;
>     import org.papervision3d.objects.DisplayObject3D;
>     import org.papervision3d.scenes.Scene3D;
>     [SWF(frameRate="60")]
>     public class test2 extends Sprite
>     {
>         [Embed(source="roomCompleteMap.jpg")] private var Box01:Class;
>         [Embed(source="colladaRoom.dae",
> mimeType="application/octet-stream")] private var Room:Class;
>
>         private var myMaterials:Object;
>         private var container:Sprite;
>         private var scene:Scene3D;
>         private var camera:Camera3D;
>         private var rootNode:DisplayObject3D;
>         public var old_mouseX:Number;
>         public var old_mouseY:Number;
>
>         public function test2()
>         {
>
>             var texture:Bitmap = new Box01() as Bitmap;
>
>             myMaterials = {
>
>                 Set01: new BitmapMaterial(texture.bitmapData )
>             };
>
>             init3D();
>             stage.addEventListener(KeyboardEvent.KEY_DOWN,walking);
>             addEventListener(MouseEvent.MOUSE_MOVE,moveCamera);
>             addEventListener(Event.ENTER_FRAME, loop3D);
>
>
>         }
>
>         private function init3D():void {
>
>             container = new Sprite();
>             addChild( container );
>
>             container.x = 200;
>             container.y = 200;
>
>             scene = new Scene3D( container );
>
>             camera = new Camera3D();
>             camera.x = 5000;
>             camera.y = 50;
>             camera.z = 50;
>             camera.zoom = 10;
>             camera.focus = 10;
>
>             rootNode = scene.addChild( new DisplayObject3D("rootNode") );
>             rootNode.addChildren( new Collada( XML( new Room() ), new
> MaterialsList( myMaterials ) ) );
>
>             //rootNode.rotationX = 0;
>         }
>         private function walking (e:KeyboardEvent):void
>         {
>             var key:uint = e.keyCode;
>
>             switch (key)
>             {
>                 case Keyboard.UP : forward_walk();
>                     scene.renderCamera( camera );
>                     break;
>             }
>         }
>
>         private function forward_walk ():void
>         {
>             addEventListener(Event.ENTER_FRAME,go_forward);
>         }
>
>         private function go_forward (e:Event):void
>         {
>             camera.moveForward(120);
>         }
>         private function moveCamera (ev:MouseEvent):void
>         {
>             if (old_mouseX > stage.mouseX)
>             {
>                 rootNode.rotationY -= (stage.mouseX)-old_mouseX;
>             }
>             if (old_mouseX < stage.mouseX)
>             {
>                 rootNode.rotationY += old_mouseX - stage.mouseX;
>             }
>             if (old_mouseY > stage.mouseY)
>             {
>                 rootNode.rotationZ -= (stage.mouseY)-old_mouseY;
>             }
>             if (old_mouseY < stage.mouseY)
>             {
>                 rootNode.rotationZ += old_mouseY-(stage.mouseY);
>             }
>             old_mouseX = stage.mouseX;
>             old_mouseY = stage.mouseY;
>         }
>
>         private function loop3D( event:Event ):void
>         {
>             //addEventListener(KeyboardEvent.KEY_DOWN, walking);
>             //addEventListener(KeyboardEvent.KEY_UP, walking);
>
>             scene.renderCamera( camera );
>         }
>     }
> }
>
>
>
> _______________________________________________
> Papervision3D mailing list
> Papervision3D at osflash.org
> http://osflash.org/mailman/listinfo/papervision3d_osflash.org
>



-- 
http://www.rackdoll.nl



More information about the Papervision3D mailing list