javascript onclick事件超过flash对象

Ped*_*dro 35 html javascript flash onclick

我有一个嵌入flash电影里面的一个div,我在主div中放了一个javascript onclick事件处理程序,但是没有抓到点击,有什么问题?

码:

   <div id="top-box-player" onclick="alert('Hi Bananas!');">
     <object width="400" height="300">
        <param name="movie" value="general.swf">
        <embed src="./swf/general.swf" width="400" height="300">
        </embed>
     </object>
   </div>
Run Code Online (Sandbox Code Playgroud)

小智 86

我在http://progproblems.blogspot.com/2009/08/javascript-onclick-for-flash-embeded.html找到了这个

  1. 将参数设置wmodetransparent.这允许包含flash的对象接收javascript onclick.
  2. 使用onmousedowninsted onclick.尽管使用wmode transparent,一些浏览器仍然不会打电话onclick,但他们会打电话onmousedown.

代码如下所示:

<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>
Run Code Online (Sandbox Code Playgroud)

它适合我的需要=)


cwa*_*ole 21

最好将所有swf视为具有无穷大的z阶.Flash位于顶部,可以做很少的事情来阻止它.另一方面,如果您可以访问SWF本身的代码,或者如果您可以使用另一个swf来加载当前的swf,那么您将能够使用几个不同的Flash命令来处理页面的JavaScript .(ExternalInterface是你最好的选择).

//This is what your AS code should look like:
import flash.external.ExternalInterface;
import flash.events.MouseEvent;

root.addEventListener( MouseEvent.CLICK, useExternal, true );

function useExternal( event:MouseEvent):void
{
    //swfClickFunction is defined in JavaScript
    ExternalInterface.call( "swfClickFunction" );
}
Run Code Online (Sandbox Code Playgroud)

使用onmousedown而不是onclick的另一种替代解决方案由Darwin提供.