Здравствуйте, помогите пожалуйста разобраться с поворотом сферы и камеры внутри сферы в сферической панораме.

Код AS3:
stage.scaleMode = StageScaleMode.NO_SCALE;
var mymousedown: Boolean = false;
var scene:Scene3D;
var camera:Camera3D;
var sphere:Sphere;
var lTg:TransformGroup = new TransformGroup("rotation");
initTutoMovieMaterial ();
var MX=mouseX;
var MY=0;
stop();
//var deltaMouseX =0;
var deltaY =0;
//var cameraY =0;
//stage.addEventListener (MouseEvent.MOUSE_DOWN, downed);
//stage.addEventListener (MouseEvent.MOUSE_UP, uped);
//*************************************сцена****************************************
function initTutoMovieMaterial ()
{
//ставим камеру
camera = new Camera3D(stage.stageWidth,stage.stageHeight);
//camera.lookAt(0,0,0);
camera.z=-500;
//создаем группу сцены
var rootGroup:Group = createScene();
scene = new Scene3D("myScene",this,camera,rootGroup);
//события поворота
addEventListener ( Event.ENTER_FRAME, enterFrameHandler );
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressedHandler);
stage.addEventListener (MouseEvent.MOUSE_DOWN, downed);
stage.addEventListener (MouseEvent.MOUSE_UP, uped);
}
//*************************************шар******************************************
function createScene ():Group
{
// группа объектов, создаем сферу и вталкиваем ее в группу
var g:Group = new Group();
sphere = new Sphere("sphere", 1000,50,50);
//sphere.z=0;
sphere.enableBackFaceCulling = true;
sphere.swapCulling();
//материал сферы
var mFront:MovieMaterial = new MovieMaterial( new MovieMaterialClass() );
sphere.appearance = new Appearance(mFront);
//группа для трансформации и группа всех объектов, на случай, если какие-то объекты трансформироваться не будут
lTg.addChild (sphere);
g.addChild (lTg);
return g;
}
//*************************************рендер сцены*********************************
function enterFrameHandler ( event : Event ):void
{
scene.render ();
}
//*************************************события мыши*********************************
function keyPressedHandler(event:flash.events.KeyboardEvent):void
{
switch(event.keyCode) {
case Keyboard.UP:
lTg.rotateX -=3;
break;
case Keyboard.DOWN:
lTg.rotateX +=3;
break;
case Keyboard.LEFT:
lTg.rotateY -=3;
break;
case Keyboard.RIGHT:
lTg.rotateY +=3;
break;
case Keyboard.PAGE_DOWN:
camera.x -= 50;
break;
case Keyboard.PAGE_UP:
camera.x += 50;
break;}}
function downed (e:MouseEvent): void {
//stage.addEventListener(MouseEvent.MOUSE_MOVE, moving);
mymousedown=true;
}
function uped (e:MouseEvent): void {
mymousedown=false;
//stage.removeEventListener(MouseEvent.MOUSE_MOVE, moving);
}
this.addEventListener(MouseEvent.MOUSE_MOVE, moving);
function moving (e:MouseEvent):void{
if (mymousedown){
var deltaMouseX=MX - mouseX;
var deltaMouseY=MY - mouseY;
var deltaMouseX_percent=deltaMouseX*100/stage.width;
var deltaMouseY_percent=deltaMouseY*100/stage.height;
if (deltaMouseX_percent>deltaMouseY_percent){
lTg.rotateY +=deltaMouseX*30/1000}
}
else if (deltaMouseY_percent>deltaMouseX_percent){
cameraY=deltaMouseY*90/1000;}
}
ротэйшн ведет себя очень странно, если я правильно поняла, то координатная сетка сместилась на центр сцены и я высчитать дельту х и у мыши не могу. Сфера крутится все время в одну сторону, куда бы я мышку ни перемещала