2013-11-27 181 views
0

喜解析我是JavaScript的新的和我的球員的名字player.swf我很喜歡videos/dhoom3.flv得到的視頻列表從數據庫中,並從那裏把它傳遞給JS,然後閃爍,我有使用JS帶閃光燈

<script language="javascript" type="text/javascript"> 

function playFirstVid() // plays the first video when the page is loaded 
{ 
sendToJavaScript("videos/dhoom3.flv"); 
} 

function sendToJavaScript(id) 
{ 
var name = getMovieName("player"); 
alert(id); 
getMovieName("player").sendToFlash(id); 
} 

function getMovieName(movieName) 
{ 
if (navigator.appName.indexOf("Microsoft") != -1) 
{ 
return window[movieName]; 
} 
else 
{ 
return document[movieName]; 
} 
} 
</script> 

首先是對的嗎?目前它沒有在閃存播放器中顯示我的視頻,因爲它表示sendToFlash功能缺失,所以任何人都可以告訴下一步該做什麼?

+0

sendToFlash是在Flash影片中定義的方法,所以如果它丟失或閃存未初始化,那麼它將無法工作。 –

+0

@ Lukasz'Severiaan'Grela如果添加它,如果它不在那裏? – user2930808

+0

此方法必須是player.swf的一部分,因此如果不存在,則意味着您必須添加代碼併發布player.swf。您也可以調用錯誤的方法(例如,您已經從某處複製代碼),或者只是在調用該方法的時刻,SWF未啓動,因此無法訪問代碼。 –

回答

0

由於Lukasz指出,如果函數不存在於類中,則不能調用它。假設它是一個公共函數,你可以通過dot.notation在swf上調用任何方法。

mySWF.theFunctionName(myArguments); 

取決於你如何接線的事件(我會建議一個統一的事件偵聽器),它只是一個是數字索引的字符串發送到您的遊戲方法的問題。

說明:以下是不是使用統一的監聽器,而是與您保持一致的例子。

<script language="javascript" type="text/javascript"> 

var videosArr = ["videos/dhoom3.flv", "videos/dhoom2.flv", "videos/dhoom1.flv"]; 

function playFirstVid() { 
    playVid(videosArr[0]); 
} 

function playVid(filename) { 
    var player; 

    if (navigator.appName.indexOf("Microsoft") != -1) { 
     player = window[movieName]; 
    } else { 
     player = document.getElementById("player"); 
    } 

    try { 
     player.sendToFlash(filename); 
    } catch (err) { 
     alert(err.message); 
    } 
} 

</script>