Для старого проекта написанного на ActionScript2 понадобилось определять находится ли мышь над флешкой или уже покинула область flash.
В AS2 нет аналога Event.MOUSE_LEAVE и после поиска в интернете нашлось более-менее универсальное рабочее решение, оно не всегда работает корректно (например если мышь резко останавливается за несколько пикселей до границ флешки), но это наилучшее решение.
Также в ActionScript 2 в полноэкранном режиме (fullscreen mode) не получится определить движение мыши с помощью onMouseMove, поэтому если вы хотите определять изменение положения мыши, то придется сравнивать координаты мыши в каждом фрейме.
Код для определения нахождения мыши над сценой:
var mouse_dx:Number = _xmouse;
var mouse_dy:Number = _ymouse;
var mouseSpeed:Number = 1;
function checkPosition(Void):Void
{
if (_xmouse<mouseSpeed || _xmouse>(Stage.width-mouseSpeed)
|| _ymouse<mouseSpeed || _ymouse>(Stage.height-mouseSpeed))
{
trace("out");
}
else
{
trace("in");
}
}
checkPosition(Void);
var mouseListener:Object = new Object();
mouseListener.onMouseMove = function():Void
{
mouse_dx = Math.abs(mouse_dx - _xmouse);
mouse_dy = Math.abs(mouse_dy - _ymouse);
mouseSpeed = mouse_dx > mouse_dy ? mouse_dx : mouse_dy;
mouseSpeed += 1;
checkPosition(Void);
mouse_dx = _xmouse;
mouse_dy = _ymouse;
}
Mouse.addListener(mouseListener);
Комментариев нет:
Отправить комментарий