但是在實現js傳值給flash時,flash在獲取值存在幾率性,有時可以獲得到,有時有獲取不到。後來發現,其實是由於<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加載完成沒有,如果沒有的話就一直監聽,直到完成,成功之後
再傳值,此時才能保證傳值成功