Kolan
03.02.2009, 15:54
Здравствуйте!
Есть некий контейнер в которой используется свой курсор. Делается это просто:
private function onMouseRollOut(e:MouseEvent):Void
{
_mouseCursor.visible = false;
Mouse.show();
}
private function onMouseRollOver(e:MouseEvent):Void
{
setChildIndex(_mouseCursor, numChildren - 1);
_mouseCursor.visible = true;
Mouse.hide();
}
private function onMouseMove(e:MouseEvent):Void
{
var p: Point = globalToLocal(new Point(e.stageX, e.stageY));
_mouseCursor.x = p.x;
_mouseCursor.y = p.y;
}
При входе в контейнер и при выходе из него скрывается и показывается стандартный курсор, а при движении меняются координаты моего. mouseCursor — это MovieClip с картинкой.
На контейнере лежат еще мувиклипы. При наведении на них нужно изменить курсор. Делаю я это тоже по событию RollOut и RollOver, но уже дочерних мувиклипов.
Проблема в том, что при движении вправо стандартный курсор наезжает на мувиклип, который я использую в качестве курсора. Из-за этого RollOver стреляет чаще чем нужно.
Можно анализировать relatedObject в событиях Roll дочерних мувиклипов,
private function onCommentBorderMouseOver(e:MouseEvent):Void
{
if (e.relatedObject != _mouseCursor) {
...
}
}
но тогда при движении вправо оно никода не будет возникать, так как стандартный курсор всегда над мувиклипом-курсором.
Если закомментировать код в onMouseMove, то есть не двигать _mouseCursor вслед за стандартным курсором, то проблемы не будет и Roll события будут срабатывать корректно.
Как с этим бороться?
PS
А нельзя ли как-то стандартный курсор менять?
Есть некий контейнер в которой используется свой курсор. Делается это просто:
private function onMouseRollOut(e:MouseEvent):Void
{
_mouseCursor.visible = false;
Mouse.show();
}
private function onMouseRollOver(e:MouseEvent):Void
{
setChildIndex(_mouseCursor, numChildren - 1);
_mouseCursor.visible = true;
Mouse.hide();
}
private function onMouseMove(e:MouseEvent):Void
{
var p: Point = globalToLocal(new Point(e.stageX, e.stageY));
_mouseCursor.x = p.x;
_mouseCursor.y = p.y;
}
При входе в контейнер и при выходе из него скрывается и показывается стандартный курсор, а при движении меняются координаты моего. mouseCursor — это MovieClip с картинкой.
На контейнере лежат еще мувиклипы. При наведении на них нужно изменить курсор. Делаю я это тоже по событию RollOut и RollOver, но уже дочерних мувиклипов.
Проблема в том, что при движении вправо стандартный курсор наезжает на мувиклип, который я использую в качестве курсора. Из-за этого RollOver стреляет чаще чем нужно.
Можно анализировать relatedObject в событиях Roll дочерних мувиклипов,
private function onCommentBorderMouseOver(e:MouseEvent):Void
{
if (e.relatedObject != _mouseCursor) {
...
}
}
но тогда при движении вправо оно никода не будет возникать, так как стандартный курсор всегда над мувиклипом-курсором.
Если закомментировать код в onMouseMove, то есть не двигать _mouseCursor вслед за стандартным курсором, то проблемы не будет и Roll события будут срабатывать корректно.
Как с этим бороться?
PS
А нельзя ли как-то стандартный курсор менять?