#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?