[英]How to catch click on flash player?
我在我的网页上使用SWFObject作为flash播放器。 玩家像往常一样有按钮,如播放,停止,暂停等。我需要抓住时刻,当我的用户点击任何按钮,我需要在这个时间执行一些JS功能。 对不起我的英文,并提前感谢。 PS我没有我的swf文件的来源。
AFAIK,这是通过getURL()
函数完成的。 您需要在Flash文件的操作脚本中定义以下内容:
this.onClick = function(){
getURL("javascript:yourFunctionName();");
};
这意味着您不能只接受任何Flash文件并使其调用JS函数,它必须在Flash文件本身内定义。
如果我错了,我很想听听如何在不编辑闪光灯本身的情况下更一般地完成这项工作。
使用ExternalInterface也可以从flash调用javascript函数。
您可以使用onPress方法。
例
[button_name] .onPress = function(){
//就在这里你想做的事情
}
嗯...
出于冒险的风险,我实际上并不认为在跨浏览器Javascript本身的范围内有任何方式可以挂钩到特定的Flash播放器活动中。 事实上,如果有的话,我会非常惊讶 - 虽然我很想听到比我更有知识的人听到的声音。 :)
假设这是真的,除了通过监听(在页面上下文中运行的Javascript)中的一些组合,用于ActiveX /插件对象本身引发的焦点和单击事件(可能不是非常具体或可靠 - - 我甚至不认为点击事件会被提升),我怀疑你有多少运气。
从迄今为止我做过的简短测试:
window.onload = function()
{
document.onclick = function()
{
alert("Clicked the page!");
}
document.getElementById("mySWFObjectID").onfocus = function()
{
alert("Focused the player!");
}
document.getElementById("mySWFObjectID").onclick = function()
{
alert("Clicked the player!");
}
}
...播放器似乎没有将点击事件冒泡到页面; 在IE中,焦点事件会触发,但不会在Firefox中触发,只有一次,当控件获得焦点时。 因此,除了编写某种类型的浏览器插件之外,为了让您获得比Javascript级别更低级别的访问权限,您可能在这一点上运气不佳。
但是,再说一次,如果有人在那里不知道......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.