在浏览器中检测Flash中的“点击”事件

时间:2009-07-21 14:27:16

标签: javascript flash events event-handling

JavaScript是否可以检测Flash对象上发生的点击(或mousedown,mouseup)?

我试过了:

  • 使用attachEvent / addEventListener将“mouseup”,“mousedown”和“click”事件附加到Flash对象
  • 直接在Flash对象上附加'onmouseup','onmousedown','onclick'事件
  • 从事件'冒泡'切换到事件'捕获'(仅适用于Firefox / Safari)

我需要在IE6 +,Firefox 2+和Safari 3 +中使用它。

感谢您的帮助! -Dave

3 个答案:

答案 0 :(得分:6)

我在http://progproblems.blogspot.com/2009/08/javascript-onclick-for-flash-embeded.html

找到了这个
1) Set the param wmode to transparent. This allows the object containing the flash to receive the javascript onclick.
2) Use onmousedown insted of onclick. In spite of using wmode transparent, some browsers still wont call  the onclick, but they do call onmousedown.
The code looks like this:

<div onmousedown="clickBanner(1)">
<object>
<param name="movie" value="3.swf">
<param name="wmode" value="transparent" />
<embed wmode=transparent allowfullscreen="true" allowscriptaccess="always" src="3.swf"></embed>
</object>
</div>

它符合我的需要=)

答案 1 :(得分:0)

你拥有flash对象吗?

当Flash检测到点击时,我们实施了从Flash到JavaScript的回调。但我们拥有Flash应用程序并可以管理交互。

答案 2 :(得分:0)

使用YAHOO yui。

If ( YAHOO.deconcept.SWFObjectUtil.getPlayerVersion().major == 0 ) {
  alert("error");
}