点击Flash对象通过JavaScript

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

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

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

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

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

请注意,您应该有一个特定的div来捕获点击。

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

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

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

动作:

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

使用Javascript:

  ExternalInterface.addCallback("invokeSimulateButtonClick", YOUR_VARIABLES); 

Flash ExternalInterface可以实现,但您需要先在Flash(.fla)中编写一些ActionScript。

一些参考 –

在Flash中使用ExternalInterface

http://www.actionscript.org/resources/articles/638/1/Basics-of-using-the-ExternalInterface/Page1.html

http://www.adobe.com/devnet/flash/articles/external_interface.html

不,你不能捕获嵌入元素的点击,除非它在div或其他东西后面。