Для замены курсора делаю так:
Кладешь в библиотеку символ-новый курсор. Назначаешь ему идентификатор связывания, например "cursor_id".
Далее:

Код AS1/AS2:
this.attachMovie("cursor_id", "cursor_mc", this.getNextHighestDepth(), {_x:_xmouse, _y:_ymouse});
Mouse.hide();
var mouseListener:Object = new Object();
mousemove = function() {
cursor_mc._x = _xmouse;
cursor_mc._y = _ymouse;
updateAfterEvent();
};
M = setInterval(mousemove, 10);
Использую именно setInterval, а не через слушателя мыши.
Но можно использовать конструкцию

Код AS1/AS2:
var mouseListener:Object = new Object();
mouseListener.onMouseMove = function() {
cursor_mc._x = _xmouse;
cursor_mc._y = _ymouse;
updateAfterEvent();
}
Mouse.addListener(mouseListener);
, но работа слушателя, как я обнаружил, связана с частотой кадров, и нет плавности передвижения нового курсора.
Вопрос знатокам, я сделал правильный вывод об этой зависимости?
По крайней мере, если в при использовании последней конструкции менять fps, то степень рывков будет тоже меняться.
Пример приложил.