在 Firefox 3 中,我的 Haxe/Flash 应用程序中的所有 mouseWheel 事件都会触发两次。这似乎只发生在 Windows 版本的 Firefox 中;它不会发生在 IE 或 Opera 中,也不会发生在 Linux 中。
这是一个已知问题,还是我做错了什么?是否有一种不涉及诸如检查用户代理并忽略所有其他事件之类的疯狂的解决方法?
更新:我在旧的 powerbook 上进行了测试(在合并了 pixelbreaker 的 SWFMacMouseWheel 脚本之后),发现虽然 OS X 版本的 Firefox 运行正常,但 Safari (3.2.1) 的事件也增加了一倍。
我还在 AS3 中编写了一个简单的测试,以确保这不是 Haxe 的错;我有同样的行为。代码如下,你可以在这里试试。
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
public class Test extends Sprite {
public function Test() {
super();
var tf: TextField = new TextField();
tf.height = 300;
addChild(tf);
stage.addEventListener(MouseEvent.MOUSE_WHEEL,
function(e:MouseEvent):void { tf.appendText(e.delta+"\n"); });
}
}
}