я не знаю, как сделано у Вас и не знаю, как делать наиболее правильно. Но я бы сделал вот как -
в оброботчике событий MOUSE_DOWN присваивал бы свойству _currentTarget объект по которому кликнули
( если он конечно подходящий объект ) и вызывал бы метод startMove.

Код AS3:
privare var _currentTarget:DisplayObject;

Код AS3:
private function startMove(target:DisplayObject):void
{
// тут бы подписывал stage на MOUSE_MOVE, чтобы перемещать объект
}
В обработчике событий MOUSE_MOVE нужно проверять выход курсора за границы сцены и если курсор вышел
то вызывать метод stopMove. А вот дальнейшие мысли указывают что я был немного не прав, так-как, хоть и не надо сцену на down, up подписывать, но и объекты тоже. я бы создал контейнер, в который положил все предметы для перетаскивания и вот этот контейнер уже бы подписал и на down и на up. И метод stopMove вызывал бы ещё из обработчика up.

Код AS3:
private function stopMove():void
{
_currentTarget = null;
// тут бы отписывал stage от MOUSE_MOVE
}
Добавлено через 2 минуты
Хотя я наверное и тут не прав! Проще сцену и на down и на up и на move подписать.