js和as的穩(wěn)定傳值問題解決
更新時間:2013年07月14日 15:05:23 作者:
最近在實現(xiàn)flash的播放音樂的功能,這就涉及到js和as交互的問題,因為要實現(xiàn)動態(tài)改變音樂文件的功能,可是如何判定呢?
但是在實現(xiàn)js傳值給flash時,flash在獲取值存在幾率性,有時可以獲得到,有時有獲取不到。后來發(fā)現(xiàn),其實是由于<object ...></object>所對應的flash沒有加載完,在js就開始調用flash中的ExternalInterface.addCallback()所開放的方法,導致flash還沒獲取到值時就開始播放音樂,此時,當然播放不了。為了保證能正常傳值,就必須在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代碼
復制代碼 代碼如下:
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通過ajax + 多列布局 + 自動加載實現(xiàn)瀑布流效果
這篇文章主要介紹了JS通過ajax + 多列布局 + 自動加載來實現(xiàn)瀑布流效果,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-05-05