我在我的网页上使用SWFObject作为flash播放器。 玩家像往常一样有按钮,如播放,停止,暂停等。 我需要抓住时机,当我的用户点击任何按钮时,我需要在这个时间执行一些JS功能。 对不起我的英文,并提前感谢。 附:我没有swf文件的来源。
答案 0 :(得分:4)
AFAIK,这是通过getURL()
功能完成的。您需要在Flash文件的操作脚本中定义以下内容:
this.onClick = function(){
getURL("javascript:yourFunctionName();");
};
这意味着您不能只使用任何Flash文件并使其调用JS函数,它必须在Flash文件本身内定义。
如果我错了,我很想听听如何在不编辑闪光灯本身的情况下更好地完成这项工作。
答案 1 :(得分:3)
使用ExternalInterface也可以通过flash调用javascript函数。
答案 2 :(得分:1)
您可以使用onPress方法。
实施例
[button_name] .onPress = function(){
//就在这里你想做的事情
}
答案 3 :(得分:1)
嗯...
冒着走出困境的风险,我实际上并不认为在跨浏览器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级别更低级别的访问权限,您可能会对此不感兴趣。
但是,如果那里有人知道不是......