点击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.adobe.com/devnet/flash/articles/external_interface.html
不,你不能捕获嵌入元素的点击,除非它在div或其他东西后面。