Flash对象上的javascript onclick事件

IT技术 javascript html flash onclick
2021-02-06 15:19:32

我在一个 div 中嵌入了一部 Flash 电影,我在主 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>
6个回答

我在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>

它适合我的需要 =)

谢谢!作为后续,使用 mousedown 的一个不同之处在于它将通过右键单击和左键单击触发,使右键单击弹出 flash 上下文菜单,以及您的单击侦听器将执行的任何操作。所以这个答案可能会帮助那些想要阻止右键点击的人。stackoverflow.com/questions/9521519/...
2021-03-28 15:19:32
这很糟糕,因为flash灯正在失去背景
2021-03-29 15:19:32

最好将所有 swf 视为具有无穷大的 z 顺序。闪存是最重要的,几乎没有什么可以阻止它。另一方面,如果您可以访问 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" );
}

下面的 Darwin 提供了另一种使用 onmousedown 而不是 onclick 的替代解决方案。

我尝试使用 on(release) { getURL("javascript:highlightform()"); 并且工作正常!!!但是您的解决方案也有效,所以谢谢!
2021-03-22 15:19:32

Flash 几乎肯定不会将 click 事件传播到其父级。我想除非你写了闪存,否则你什么也做不了。

flash 对象将始终捕捉点击而不是自动传递它。您将必须构建该功能 - 在 flash 中捕获 onclick 并调用 JS 函数。

你想达到什么目的?

当我们单击 swf 时,我试图更改另一个页面对象的 css 类
2021-04-01 15:19:32

试试这个简单的解决方案,用 div 覆盖 flash 并将点击事件放在顶部 div 上,这样 flash 永远不会抓住鼠标。

<div style="position:absolute;top:209px;left:80px;z-index:500;" id="helpvideos"> 
<div style="float:left">
<fb:swf 
    swfbgcolor="FFFFFF"  
    swfsrc='<?php echo SITE_URL;?>swf/3_sidebar.swf'  
    width='600' height='670'
    wmode="transparent"
     />
</div>
<div style="width:600px;height:670px;position:absolute;float:left;z-index:6000;" onclick="document.getElementById('helpvideos').setStyle('display','none');">&nbsp;</div>
</div>