gpt4 book ai didi

当鼠标悬停在 flash 上时,Javascript mousemove 事件不会触发

转载 作者:行者123 更新时间:2023-11-30 18:33:19 25 4
gpt4 key购买 nike

我正在使用 Javascript 的鼠标事件将有关鼠标位置的信息传递给 flash,并根据鼠标位置显示特定的动画帧。

问题是,当鼠标悬停在 flash 对象上时,它不再触发 javascript 事件。我已经在 Chrome 上测试过它,它似乎可以正常工作,但 Firefox 不想合作。

我的 flash 对象位于网站的中间,背景是透明的。它必须保持这种状态。另外,出于两个原因,我不想将操作移至 ActionScript:

  1. 网站的宽度不是恒定的(例如不同的浏览器)所以我也必须将视口(viewport)的宽度也推到 flash,这会使脚本复杂化,还有 mouseenter 事件等。

  2. 我不太了解AS。

代码:(我在这里使用 jQuery,因为它也在页面的其他地方使用,之前的模型使用纯 JS)

    function viewport()
{
var e = window
, a = 'inner';
if ( !( 'innerWidth' in window ) )
{
a = 'client';
e = document.documentElement || document.body;
}
return e[ a+'Width' ];
}

puszka = document.getElementById("puszka");

$().mousemove(function(e)
{
var x = e.pageX || e.clientX + document.body.scrollLeft;
var frame = Math.floor(x * 100 / viewport());
puszka.transformCan(frame);
});

最佳答案

Actionscript 能够识别鼠标事件,如移动、单击等。因此,我假设 Firefox 将责任传递给 flash 对象,当涉及到 flash 是一切的主人时。

在 AS 中处理鼠标移动并不困难。如果您了解 Javascript,您还可以使用提供的文档高效地编写 Actionscript。

如果我没记错的话,你只需要将舞台添加到监听器:

stageObj.addEventListener(MouseEvent.MOUSE_MOVE, yourFunction);

然后让“yourfunction”成为能够通过“ExternalInterface”调用您的 javascript 函数的处理程序。

关于当鼠标悬停在 flash 上时,Javascript mousemove 事件不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9002953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com