2009-01-06 102 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級別暴露的更低級別的訪問權限,您可能會對此感到失望。

但同樣,如果有任何人在那裏誰知道,否則......