У меня были проблемы с положением мыши в 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 на веб-страницу, в центреtop.
Когда мышь выходит за пределы флеш-рамки, она больше не обновляется.Таким образом, каждый кадр работает с последней позицией.
В Chrome и Safari последняя позиция - это позиция, где мышь выходила из кадра.На самом деле, это, вероятно, интерполяция, основанная на предыдущей скорости мыши, поскольку у меня могут быть отрицательные координаты, если я выхожу через левый или верхний край.
В Firefox положение мыши по умолчанию равно (5, 5),По какой-то странной причине.
Есть ли способ обойти это?Вероятно, это зависит от реализации браузера (поскольку они используют один и тот же плагин).
Как он ведет себя в браузерах Windows?