[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