js和as的穩(wěn)定傳值問題解決
更新時間:2013年07月14日 15:05:23 作者:
最近在實現(xiàn)flash的播放音樂的功能,這就涉及到j(luò)s和as交互的問題,因為要實現(xiàn)動態(tài)改變音樂文件的功能,可是如何判定呢?
但是在實現(xiàn)js傳值給flash時,flash在獲取值存在幾率性,有時可以獲得到,有時有獲取不到。后來發(fā)現(xiàn),其實是由于<object ...></object>所對應(yīng)的flash沒有加載完,在js就開始調(diào)用flash中的ExternalInterface.addCallback()所開放的方法,導(dǎo)致flash還沒獲取到值時就開始播放音樂,此時,當(dāng)然播放不了。為了保證能正常傳值,就必須在flash加載完后才傳值,可是如何判定呢?其實只要利用flash開放的js的接口PercentLoaded 即可。具體如下:
Js代碼
var checkFlashLoaded = setInterval(function() {
if(flash.PercentLoaded =100) {
flash.setBGMusic("bkmusic.mp3");
clearInterval(checkFlashLoaded);
}
},10);
var checkFlashLoaded = setInterval(function() {
if(flash.PercentLoaded =100) {
flash.setBGMusic("bkmusic.mp3");
clearInterval(checkFlashLoaded);
}
},10);
通過判斷PercentLoaded是否100%即可知道flash加載完成沒有,如果沒有的話就一直監(jiān)聽,直到完成,成功之后
再傳值,此時才能保證傳值成功
Js代碼
復(fù)制代碼 代碼如下:
var checkFlashLoaded = setInterval(function() {
if(flash.PercentLoaded =100) {
flash.setBGMusic("bkmusic.mp3");
clearInterval(checkFlashLoaded);
}
},10);
var checkFlashLoaded = setInterval(function() {
if(flash.PercentLoaded =100) {
flash.setBGMusic("bkmusic.mp3");
clearInterval(checkFlashLoaded);
}
},10);
通過判斷PercentLoaded是否100%即可知道flash加載完成沒有,如果沒有的話就一直監(jiān)聽,直到完成,成功之后
再傳值,此時才能保證傳值成功
相關(guān)文章
BootStrap學(xué)習(xí)筆記之nav導(dǎo)航欄和面包屑導(dǎo)航
這篇文章主要介紹了BootStrap學(xué)習(xí)筆記之nav導(dǎo)航欄和面包屑導(dǎo)航的相關(guān)資料,需要的朋友可以參考下2017-01-01javascript的console.log()用法小結(jié)
console.log 原先是 Firefox 的 專利 ,嚴(yán)格說是安裝了 Firebugs 之后的 Firefox 所獨有的調(diào)試 絕招2012-05-05JS通過ajax + 多列布局 + 自動加載實現(xiàn)瀑布流效果
這篇文章主要介紹了JS通過ajax + 多列布局 + 自動加載來實現(xiàn)瀑布流效果,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-05-05