我有一个包含几个子元素的 div,其中一个是 Flash 电影。
滚动此 div 时,我希望它更改样式以指示它已滚动。我的问题是mouseover
andmouseout
事件并不总是触发,尤其是当用户将鼠标移动到 flash 元素上过快时。
关于如何确保mouseover
始终触发事件的任何建议。
我无法将事件添加到 Flash 电影本身,因为它是我没有源代码的专有代码。
此外,我无法在 div/图像中覆盖 Flash 电影,因为我需要在 Flash 本身内发生翻转和单击事件。
我有一个包含几个子元素的 div,其中一个是 Flash 电影。
滚动此 div 时,我希望它更改样式以指示它已滚动。我的问题是mouseover
andmouseout
事件并不总是触发,尤其是当用户将鼠标移动到 flash 元素上过快时。
关于如何确保mouseover
始终触发事件的任何建议。
我无法将事件添加到 Flash 电影本身,因为它是我没有源代码的专有代码。
此外,我无法在 div/图像中覆盖 Flash 电影,因为我需要在 Flash 本身内发生翻转和单击事件。
将 object/embed 标签的wmode参数更改为opaque。
您的代码应如下所示。
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia
.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="800" height="600">
<param name="movie" value="movie.swf">
<param name="wmode" value="opaque">
<embed src="movie.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="800" height="600"></embed>
</object>
你可以做的是用一个不可见的 div 覆盖 flash 元素。将您的 onmouseover 处理程序放在该 div 上,并在处理程序中添加一行以隐藏覆盖 div。同时,onmouseover
向窗口添加一个函数 - 当鼠标离开 flash 元素时应该会触发该函数。(我希望)。
<div>
覆盖你的闪光灯。div
。window.onmouseover
功能。简单的答案是,鉴于您的限制,您不能。
您似乎已经知道的复杂答案。Flash 影片在不触发常规 DOM 事件的沙箱中运行。如果你想在flash中触发鼠标事件,你不能用DOM元素来掩盖它。如果你无法访问 Flash 电影的源代码,你就无法建立通往 JS 世界的“桥梁”。
我认为你没有双赢的局面。