Нужно сделать драг объекта по одной указанной оси ( ось передается в конструктор вместе с остальными координатами). Причем весь код хочется уместить внутри объекта, т.к. чтобы ничего в главный класс приложения не добавлять - просто создаем объект и добавляем на сцену, тягаем по оси, которую указали при создании.
Выкладываю код всего класса :

Код AS3:
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
public class utils_DragBlock extends Sprite
{
var WIDTH,HEIGHT: Number;
var ORIENT: String;
var MEM: Number;
public function utils_DragBlock(_WIDTH:Number,_HEIGHT:Number,_ORIENT: String)
{
WIDTH=_WIDTH;
HEIGHT=_HEIGHT;
ORIENT=_ORIENT;
//HOR - drag only in oY axis
//VER - drag only in oX axis
if (ORIENT=='HOR')
{
MEM=x;
}
if (ORIENT=='VER')
{
MEM=y;
}
drawBlock(_WIDTH,_HEIGHT);
this.addEventListener(MouseEvent.MOUSE_DOWN,_mouseDown);
}
function _mouseDown(e:MouseEvent)
{
startDrag();
this.addEventListener(MouseEvent.MOUSE_MOVE,_mouseMove);
this.addEventListener(MouseEvent.MOUSE_UP,_mouseUp);
}
function _mouseUp(e:MouseEvent)
{
stopDrag();
this.removeEventListener(MouseEvent.MOUSE_MOVE,_mouseMove);
this.removeEventListener(MouseEvent.MOUSE_UP,_mouseUp);
}
function _mouseMove(e:MouseEvent)
{
if (ORIENT=='HOR')
{
if (x!=MEM)x=MEM;
}
if (ORIENT=='VER')
{
if (y!=MEM)y=MEM;
}
}
function drawBlock(_WIDTH:Number,_HEIGHT:Number)
{
trace('DRAW DRAG BLOCK');
this.graphics.beginFill(0xFFCC00,0.9);
this.graphics.drawRect(0,0,_WIDTH,_HEIGHT);
this.graphics.endFill();
}
}
}
Работает абсолютно никак, собственно причины две:
во-первых свойства x и y вызываемые внутри класса никак не отражают реального расположения объекта в контейнере-родителе.
во-вторых переприсваивание координаты по MOUSE_MOVE при параллельном использовании метода startDrag() выдает прямо-таки эпилептические подергивания объекта, даже если всю реализацию написать в основной класс приложения и все листенеры сделать в него ( отпадает проблема с координатами, однако такое решение меня не устраивает )
Собственно вопрос:
Как все же адекватно написать класс объекта, позволяющего красиво тащить себя по двум осям?
Добавлено через 2 минуты
P.S. По одной оси из указанных двух, пардон )
Добавлено через 2 минуты
P.P.S. Из двух возможных. Я и впрямь не специально.