首頁 >web前端 >js教程 >js怎麼判斷flash swf檔案是否載入完畢_javascript技巧

js怎麼判斷flash swf檔案是否載入完畢_javascript技巧

WBOY
WBOY原創
2016-05-16 16:39:341287瀏覽

js怎麼判斷flash是否載入完畢了呢?

我們怎麼在flash載入完畢之時,回呼一個我們設定的js函數?

這個問題,一直困擾了我很久,直到今天,請教了一個非常牛B的人物之後,突然來了感覺!

呵呵,也許,這個問題在你們看來不是問題,不過對我來說,確實是個問題,因為我一直不知道該怎麼判斷swf檔案是否載入完畢了?

從前都是只知道img.onload等等。

好了,言歸正傳,我們到底該怎樣判斷一個flash是否加載完了呢?

沒錯,就是輪詢,然後判斷flash的某個方法是否能正常運作?

範例如下(偽代碼):

(function () { 
var flash = 网页上某个flash对象。 

var interval = setInterval(function () { 
try { 
if(flash.IsPlaying()) { //轮询flash的某个方法即可 
callBack && callBack.call(flash, args); //回调函数 
clearInterval(interval); 
} 
} catch (ex) { 

} 
}, 1000); 

var callBack = function () { 
alert('loaded'); 
} 
})();

//具體運用時,flash放進setInterval或者setTimeout的函數閉包中時,可能會由於JavaScript單線程問題,導致flash不能調用IsPlaying等flash player函數或者調用結果不對等狀況,這裡有個臨時的解決辦法,我們可以讀取在輪詢函數中讀取flash的TotalFrames屬性,讀取得到,我們就可以認為flash已經完全載入到頁面中了! ! !

經測試,確實可行,不過可能會有1—2秒的時間延遲。

/////////////有什麼不對的地方,歡迎勘誤! ! ! ! ! ! ! ! ! //////////////

/*後面附上可控制Flash Player的js方法清單*/

Play() ---------------------------------------- 播放動畫
StopPlay()------------------------------------------------停止動畫
IsPlaying()-----------------------------------動畫是否正在播放
GotoFrame(frame_number)---------------- 跳到某個畫面
TotalFrames()------------------------------- 取得動畫總幀數
CurrentFrame()------------------------------回傳目前動畫所在幀數-1
Rewind()-------------------------------------使動畫回傳第一格
SetZoomRect(left,top,right,buttom)-------放大指定區域
Zoom(percent)------------------------------改變動畫大小
Pan(x_position,y_position,unit)------------使動畫在x,y方向上平移
PercentLoaded()----------------------------返回動畫被載入的百分比
LoadMovie(level_number,path)----------- 載入動畫
TGotoFrame(movie_clip,frame_number)- movie_clip跳到指定幀數
TGotoLabel(movie_clip,label_name)------ movie_clip跳到指定標籤
TCurrentFrame(movie_clip)--------------- 回傳movie_clip目前幀-1
TCurrentLabel(movie_clip)-----------------回傳movie_clip目前標籤
TPlay(movie_clip)---------------------------播放movie_clip
TStopPlay(movie_clip)----------------------停止movie_clip的播放
GetVariable(variable_name)-----------------取得變數
SetVariable(variable_name,value)-----------變數賦值
TCallFrame(movie_clip,frame_number)---call指定幀上的action
TCallLabel(movie_clip,label)----------------call指定標籤上的action
TGetProperty(movie_clip,property)--------取得movie_clip的指定屬性
TSetProperty(movie_clip,property,number)-設定movie_clip的指定屬性

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn