а если юзать MOUSE_OVER\MOUSE_OUT?

Код:
package {
import flash.display.Sprite;
import flash.ui.ContextMenu;
import flash.events.ContextMenuEvent;
public class Context extends Sprite
{
public function Context()
{
addChild(new Square());
}
private function onMenuSelect(event:ContextMenuEvent):void
{
}
}
}
import flash.display.Sprite;
import flash.events.*;;
import flash.ui.*;
class Square extends Sprite
{
public function Square()
{
graphics.beginFill(0xFF6600);
graphics.drawRect(0,0,100,100);
graphics.endFill();
addEventListener(MouseEvent.MOUSE_OVER,onMouseOver);
addEventListener(MouseEvent.MOUSE_OUT,onMouseOut);
addEventListener(MouseEvent.MOUSE_MOVE,onMouseMove);
var menu:ContextMenu = new ContextMenu();
menu.addEventListener(ContextMenuEvent.MENU_SELECT,onMenuSelect);
menu.customItems.push(new ContextMenuItem("Hello world"));
contextMenu = menu;
}
private var cursor:Cursor = new Cursor();
private function onMouseOver(event:MouseEvent):void
{
addChild(cursor);
Mouse.hide();
}
private function onMouseOut(event:MouseEvent):void
{
removeChild(cursor);
Mouse.show()
}
private function onMouseMove(event:MouseEvent):void
{
cursor.x = event.localX;
cursor.y = event.localY;
}
private function onMenuSelect(event:ContextMenuEvent):void
{
trace(this);
}
}
class Cursor extends Sprite
{
public function Cursor()
{
graphics.beginFill(0xFF0000);
graphics.drawRect(0,0,10,10);
graphics.endFill();
mouseEnabled = false;
}
}