Квадратная область
Всем доброго времени!
Уважаемые знатоки пожалуйста помогите решить задачу.
Есть код:
Код AS3:
package {
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.display.DisplayObject;
import flash.display.Shape;
import flash.events.*;
public class Main extends Sprite {
private var offsetX:int,
offsetY:int,
displayObject:DisplayObject;
public function Main():void {
this.init();
}
private function init():void {
var rectDrag:Sprite = new Sprite();
rectDrag.graphics.beginFill(0x000000);
rectDrag.graphics.drawRect(0, 0, 45, 45);
rectDrag.graphics.endFill();
var rect:Sprite = new Sprite();
rect.graphics.lineStyle(1, 0x006600);
rect.graphics.drawRect(0, 0, 400, 400);
rect.graphics.endFill();
var sprite:Sprite = new Sprite();
sprite.y = 300;
sprite.x = 50;
sprite.rotationY = -43;
sprite.rotationX = -43;
sprite.rotationZ = -36;
rect.addChild(rectDrag);
rectDrag.addEventListener(MouseEvent.MOUSE_DOWN, this.startd);
rectDrag.addEventListener(MouseEvent.MOUSE_UP, this.stopd);
sprite.addChild(rect);
super.addChild(sprite);
}
private function startd(event:MouseEvent):void {
this.displayObject = DisplayObject(event.target);
this.offsetX = event.stageX - this.displayObject.x;
this.offsetY = event.stageY - this.displayObject.y;
super.stage.addEventListener(MouseEvent.MOUSE_MOVE, dragg);
}
private function stopd(event:MouseEvent):void {
super.stage.removeEventListener(MouseEvent.MOUSE_MOVE, this.dragg);
}
private function dragg(event:MouseEvent):void {
this.displayObject.x = event.stageX - this.offsetX;
this.displayObject.y = event.stageY - this.offsetY;
event.updateAfterEvent();
}
}
}
Неправильно работает перемещение по области...
Помогите в чем проблема?
Если убрать:
Код AS3:
sprite.rotationY = -43;
sprite.rotationX = -43;
sprite.rotationZ = -36;
То все нормально двигается.
Уже какой день не могу решить проблему.
Как вообще правильно нужно сделать?
Будьте так любезны подскажите, ка правильно нужно сделать.
|