单击以通过 JavaScript 刷新对象



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

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

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

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

我从来没有测试过这个,所以只是认为

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

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

 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.actionscript.org/resources/articles/638/1/Basics-of-using-the-ExternalInterface/Page1.html

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

不,您无法捕获对嵌入式元素的点击,除非它在div 或其他东西后面。

最新更新