点击Flash对象通过JavaScript

时间:2012-06-08 10:36:25

标签: javascript jquery flash

是否可以通过JavaScript触发Flash对象上的点击事件?

4 个答案:

答案 0 :(得分:13)

是和否。您可以使用ExternalInterface来模拟Flash项目中的点击事件,前提是他们不关心事件源(即人类与否)。

但是,Flash中对Click事件源特别迟钝的一个功能是文件选择对话框。如果没有来自真实用户的真实点击(就浏览器而言),则无法触发;如果可能的话,这实际上是一种潜在的安全风险。如果我没记错的话,这在FP 9之前是可能的,我们将这种行为用于我们的文件上传器。一旦他们修复了问题就开始引起问题,但我很高兴他们这样做了:)

克服此限制的典型方法是创建一个透明的Flash对象,并在其上放置一个显示按钮图像的图层; click事件最终将命中Flash对象并触发用户单击事件。

答案 1 :(得分:2)

我从未测试过这个,所以只是想到了

请注意,您应该有一个可以捕获点击次数的div。

在Actionscript中要模拟点击事件,可以使用。

 element.dispatchEvent(new MouseEvent(MouseEvent.CLICK, true, false));

那么为什么不创建一个外部函数,一旦从使用外部接口的JavaScript接收调用就调度该事件?当然这非常粗糙,但可能会有效。

的ActionScript:

import flash.external.*;

function simulateButtonClick() 
{ 
// Here goes your code
} 
ExternalInterface.addCallback("invokeSimulateButtonClick", simulateButtonClick); 

使用Javascript:

 ExternalInterface.addCallback("invokeSimulateButtonClick", YOUR_VARIABLES);

答案 2 :(得分:1)

答案 3 :(得分:0)

不,你不能捕获嵌入元素的点击,除非它在div之后。