package {
import flash.display.*;
import flash.ui.*;
import flash.events.*;
import flash.geom.*;
public class CustomMousePointer extends Sprite {
public function CustomMousePointer ( ) {
graphics.lineStyle(1);
graphics.beginFill(0x0000FF, 1);
graphics.lineTo(15, 5);
graphics.lineTo(5, 15);
graphics.lineTo(0, 0);
graphics.endFill( );
var stageDetector:StageDetector = new StageDetector(this);
stageDetector.addEventListener(StageDetector.ADDED_TO_STAGE,
addedToStageListener);
stageDetector.addEventListener(StageDetector.REMOVED_FROM_STAGE,
removedFromStageListener);
}
private function addedToStageListener (e:Event):void {
Mouse.hide( );
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveListener);
stage.addEventListener(Event.MOUSE_LEAVE, mouseLeaveListener);
}
private function removedFromStageListener (e:Event):void {
Mouse.show( );
stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveListener);
stage.removeEventListener(Event.MOUSE_LEAVE, mouseLeaveListener);
}
private function mouseLeaveListener (e:Event):void {
visible = false;
}
private function mouseMoveListener (e:MouseEvent):void {
var pointInParent:Point = parent.globalToLocal(new Point(e.stageX,
e.stageY));
x = pointInParent.x;
y = pointInParent.y;
e.updateAfterEvent( );
if (!visible) {
visible = true;
}
}
}
}