如何抓住点击Flash播放器?

时间:2009-01-06 11:31:38

标签: javascript flash

我在我的网页上使用SWFObject作为flash播放器。 玩家像往常一样有按钮,如播放,停止,暂停等。 我需要抓住时机,当我的用户点击任何按钮时,我需要在这个时间执行一些JS功能。 对不起我的英文,并提前感谢。 附:我没有swf文件的来源。

4 个答案:

答案 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级别更低级别的访问权限,您可能会对此不感兴趣。

但是,如果那里有人知道不是......