[英]Click to Flash object via JavaScript
是否可以通过JavaScript触发Flash对象上的click事件?
是的,不是。 您可以使用ExternalInterface
模拟Flash项目中的单击事件,前提是它们不关心事件源(即人类与否)。
但是,Flash中对Click事件源特别迟钝的功能之一是“ 文件选择”对话框。 如果没有来自真实用户的真实点击(就浏览器而言),则无法触发; 如果可能的话,这实际上是一种潜在的安全风险。 如果我没记错的话,这在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。
一些参考 -
http://www.adobe.com/devnet/flash/articles/external_interface.html
不,你不能捕获嵌入元素的点击,除非它在div或其他东西后面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.