В ActionScript 3 можно определить что мышка ушла за пределы флеш-ролика, используя событие mouseLeave для stage. Это событие происходит каждый раз, когда мышка покидает пределы ролика. Нет события mouseEnter, но можно использовать mouseMove для определения того, что мышка вернулась к нам.
Простой пример использования нарисованного квадрата в качестве своего курсора.
Код:
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.ui.Mouse;
public class Test extends Sprite {
private var cursor:Sprite = new Sprite();
public function Test() {
cursor.graphics.beginFill(0xFF);
cursor.graphics.drawRect(0, 0, 25, 25);
addChild(cursor);
stage.addEventListener(Event.MOUSE_LEAVE, cursorHide);
stage.addEventListener(MouseEvent.MOUSE_MOVE, cursorFollow);
Mouse.hide();
}
public function cursorHide(evt:Event):void {
cursor.visible = false;
}
public function cursorFollow(evt:MouseEvent):void {
if (!cursor.visible) cursor.visible = true;
cursor.x = stage.mouseX;
cursor.y = stage.mouseY;
evt.updateAfterEvent();
}
}
}
Когда мышка уходит за пределы флеш-ролика, наш курсор прячется. Когда мышка возвращается по событию mouseMove курсор снова отображается. Сделать такое в предыдущих версиях AS было нельзя.