繁体   English   中英

点击Flash对象通过JavaScript

[英]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);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM