我在Flash游戏中遇到了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放在网页的中间位置。
当鼠标移出闪光灯框架时,鼠标不再更新。所以每一帧都适用于最后一个位置。
在Chrome和Safari中,最后一个位置是鼠标退出框架的位置。实际上,它可能是基于鼠标之前速度的插值,因为如果我从左边缘或上边缘退出,我可以有负坐标。
在Firefox中,鼠标位置默认为(5,5)。出于某种奇怪的原因。
有解决方法吗?这可能取决于浏览器的实现(因为它们使用相同的插件)。
它在Windows浏览器中的表现如何?