Flash Player на Firefox Mac не выдает правильное положение мыши при выходе за рамки

#flash #macos #firefox #actionscript

#flash #macos #firefox #actionscript

Вопрос:

У меня были проблемы с положением мыши в Firefox в моих флеш-играх, поэтому я разработал эту небольшую программу, чтобы проверить ситуацию.

 package
{    
    import flash.display.Sprite;
    import flash.events.Event;

    [SWF(width="750", height="520", frameRate="40", backgroundColor="#000000")]

    public class HelloWorld extends Sprite
    {
        private var _mouseX:Number;
        private var _mouseY:Number;

        public function HelloWorld()
        {
            addEventListener(Event.ENTER_FRAME, onEnterFrame);
        }

        public function onEnterFrame(event:Event):void
        {
            if ((mouseX != _mouseX) || (mouseY != _mouseY))
            {
                _mouseX = mouseX;
                _mouseY = mouseY;
                trace(_mouseX, _mouseY);
            }
        }
    }
}
  

Я разместил swf-файл на веб-странице в центре вверху.

Когда мышь выходит за рамки flash, мышь больше не обновляется. Таким образом, каждый кадр работает с последней позицией.

В Chrome и Safari последней позицией является позиция, в которой мышь вышла из рамки. На самом деле, это, вероятно, интерполяция, основанная на предыдущей скорости мыши, поскольку у меня могут быть отрицательные координаты, если я выхожу через левый или верхний край.

В Firefox положение мыши по умолчанию равно (5, 5). По какой-то странной причине.

Есть ли способ обойти это? Вероятно, это зависит от реализации браузера (поскольку они используют один и тот же плагин).

Как это работает в браузерах Windows?