You could accomplish this based on a modification of OXMO456's suggestion. As you are concerned about the notifications based on it's position in the stage, and not neccessarily it's parent, you can simply cache and compare the 'global' coordinates, and fire when that changes.
useful methods to know:
localToGlobal
globalToLocal
public class Example extends Sprite{
private var stagePoint:Point = new Point(0,0);
override public function set x(value:Number):void{
super.x=value;
if(stage != null){
var globalPoint:Point = this.parent.localToGlobal(new Point(x,y));
if(globalPoint.x != stagePoint.x){
stagePoint = globalPoint;
dispatchEvent(new Event("move"));
}
}
}
override public function set y(value:Number):void{
super.y=value;
if(stage != null){
var globalPoint:Point = this.parent.localToGlobal(new Point(x,y));
if(globalPoint.y != stagePoint.y){
stagePoint = globalPoint;
dispatchEvent(new Event("move"));
}
}
}
}
EDIT: Oh wait, I think I mis-interpreted what you were asking, doh! I'll leave this up in case it's useful in some other way.
Can you give some more detail about the problem you're trying to solve by doing this? That might help us zero in on a solution that will work without deal-breaking overhead (like a ton of registered event listeners or some such)