flash对象上的javascript onclick事件

flash对象上的javascript onclick事件,javascript,html,flash,onclick,Javascript,Html,Flash,Onclick,我在一个div中嵌入了一个flash电影,我在主div中放置了一个javascript onclick事件处理程序,但是没有捕捉到点击,怎么了 代码: 闪存几乎肯定不会将单击事件传播到其父级。我想,除非你写了flash,否则你什么也做不了。flash对象总是捕捉到点击,而不会自动传递。您必须构建该功能—在flash中捕获onclick并调用JS函数 你想实现什么?最好把所有的swf都看成是z阶无穷大。闪光是在顶部,并没有什么可以做,以阻止这一点。另一方面,如果您可以访问SWF本身的代码,或者如

我在一个div中嵌入了一个flash电影,我在主div中放置了一个javascript onclick事件处理程序,但是没有捕捉到点击,怎么了

代码:



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

flash对象总是捕捉到点击,而不会自动传递。您必须构建该功能—在flash中捕获onclick并调用JS函数


你想实现什么?

最好把所有的swf都看成是z阶无穷大。闪光是在顶部,并没有什么可以做,以阻止这一点。另一方面,如果您可以访问SWF本身的代码,或者如果您可以使用另一个SWF加载当前的SWF,那么您将能够使用两个不同的Flash命令来处理页面的JavaScript。(外部接口是您的最佳选择)


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

在对象标记上执行onclick事件。(obejct标记支持鼠标事件)。然后通过DOM获取父div

我在

  • 将参数
    wmode
    设置为
    transparent
    。这允许包含闪存的对象接收javascript
    onclick
  • 使用
    onmousedown
    代替
    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>
    
    
    

    它适合我的需要=)

    试试这个简单的解决方案,用div覆盖flash,并将click事件放在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>
    
    
    
    很好

    我在尝试制作自动动态放置横幅时遇到了这个问题。如果SWF被设置为“opaquecolor”模式,那么我就没有可接受的点击量——我不得不使用opaquecolor,因为一些横幅和网站的颜色弄乱了。我找到的解决方案是将SWF设置为“透明”模式,z-index:10,然后在其下方放置一个与SWF文件尺寸相同的新文件,其中填充了SWF的不透明颜色。两人都跳进了一个房间
    当我们使用on(release){getURL(“javascript:highlightform()”);}单击swfI try in flash时,我正在尝试更改另一个页面对象的css类,并且工作正常!!!但是你的解决方案也是有效的,所以谢谢!看,谢谢!作为后续,使用mousedown的一个区别是,它将由右键单击和左键单击触发,使右键单击弹出flash上下文菜单,以及您的单击侦听器将执行的任何操作。所以这个答案可能会帮助那些想要阻止右键点击的人。这很糟糕,因为闪光灯失去了背景
    <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>
    
    <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>
    
    <param name="wmode" value="transparent" />
    
    'wmode', 'transparent',
    
    Example:
        <a href="www.mysite.com">
        <div id="SWF_file_container" style="width:100px; height:40px; z-index:10;">
        <object> .... </object> (adding SWF in TRANSPARENT MODE)
        </div>
        <div id="opaquecolor_of_swf" style="width:100px; height:40px; z-index:2; background-color:#ff0000;"></div>
        </a>