flash对象上的javascript onclick事件
我在一个div中嵌入了一个flash电影,我在主div中放置了一个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本身的代码,或者如
闪存几乎肯定不会将单击事件传播到其父级。我想,除非你写了flash,否则你什么也做不了。flash对象总是捕捉到点击,而不会自动传递。您必须构建该功能—在flash中捕获onclick并调用JS函数
你想实现什么?最好把所有的swf都看成是z阶无穷大。闪光是在顶部,并没有什么可以做,以阻止这一点。另一方面,如果您可以访问SWF本身的代码,或者如果您可以使用另一个SWF加载当前的SWF,那么您将能够使用两个不同的Flash命令来处理页面的JavaScript。(外部接口是您的最佳选择)
下面达尔文提供了另一种使用onmousedown而不是onclick的替代解决方案 在对象标记上执行onclick事件。(obejct标记支持鼠标事件)。然后通过DOM获取父div 我在
wmode
设置为transparent
。这允许包含闪存的对象接收javascriptonclick
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');"> </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');"> </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>