2009-01-06 104 views
4

我在我的网页上使用SWFObject作为flash播放器。 像往常一样的播放器有像播放,停止,暂停等按钮。 我需要捕捉瞬间,当我的用户点击任何按钮,我需要在这个时候执行一些JS功能。 对不起,我的英语,并提前感谢了很多。 P.S.我没有我的swf文件的来源。如何捕捉点击Flash播放器?

回答

4

AFAIK,这是通过getURL()函数完成的。你需要在Flash文件的动作脚本定义如下:

this.onClick = function(){ 
    getURL("javascript:yourFunctionName();"); 
}; 

这意味着你不能采取任何Flash文件,并使其调用JS功能,它必须在Flash文件本身中定义。

如果我错了,我很想听听如何在没有编辑闪光灯的情况下更通用地完成此操作。

3

使用ExternalInterface也可以实现从flash调用JavaScript函数。

+0

一会儿这里:我没有我的Flash网页播放器的来源。 – user52005 2009-01-06 11:43:58

1

您可以使用onPress方法。

[BUTTON_NAME] .onPress =函数(){

//这里的东西,你想要做的

}

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!"); 
    } 
} 

...球员似乎并没有被冒泡click事件到页面;在IE中,焦点事件触发,但不是在Firefox中,只有一次,当控制获得焦点时。因此,除了写作之外,也许还有某种浏览器插件,为了让您获得比在Javascript级别暴露的更低级别的访问权限,您可能会对此感到失望。

但同样,如果有任何人在那里谁知道,否则......