Away 3d rotating cube

Im trying to set up a 3d cube interface with away 3d but i don’t really know how to use away 3d. i have the cube and it rotates with the mouse drag. the problem is that when first clicked the cube jumps to a new rotation before the dragging starts. any ideas how i can stop it from doing that.

Thanks!!


package
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.display.Bitmap;
import com.greensock.*;
import com.greensock.easing.*;
import com.greensock.events.*;
import com.greensock.loading.*;
import com.greensock.plugins.*;

    import away3d.cameras.*;

    import away3d.containers.View3D;
    import away3d.primitives.Cube;
    import away3d.materials.BitmapMaterial;

    import away3d.core.utils.Cast;

import flash.events.MouseEvent;

public class CreateCube01 extends Sprite {
        private var viewport:View3D;
        private var cube:Cube;
        private var tray:Tray = new Tray;
        private var slider:SliderStill = new SliderStill;
    private var camera:HoverCamera3D;
        [Embed (source="metal.jpg")] private var myTexture:Class;
        private var myBitmap:Bitmap = new myTexture();

        public function CreateCube01() {

            camera = new HoverCamera3D({zoom:2, focus:100, distance:250});
            viewport = new View3D({x:400, y:400});
            addChild(viewport);
            addChild(tray);
            addChild(slider);
            tray.x = 65;
            tray.y = 569;
            slider.x = 630;
            slider.y = 240;


            var myMaterial:BitmapMaterial = new BitmapMaterial(Cast.bitmap(myBitmap));
            cube = new Cube({width:200, height:200, depth:200, material:myMaterial});

            viewport.scene.addChild(cube);
            render();
            viewport.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
            viewport.addEventListener(MouseEvent.MOUSE_UP, onUp);

        }

        private function onDown(e:MouseEvent):void {
            this.addEventListener(Event.ENTER_FRAME, renderThis);
        }

    private function onUp(e:MouseEvent):void {
        this.removeEventListener(Event.ENTER_FRAME, renderThis);
    }

        private function render(){
            cube.rotationX =1;
            cube.rotationY =15;
           cube.rotationZ =1;
          viewport.camera.moveTo(cube.x,cube.y,cube.z);
            viewport.camera.moveBackward(500);
            viewport.render();

        }

        private function renderThis(e:Event):void {
            viewport.camera.moveTo(cube.x,cube.y,cube.z);
            viewport.camera.rotationY=mouseX;
            viewport.camera.rotationX=mouseY;
            viewport.camera.moveBackward(500);
            viewport.render();
        }

    }

}