ただし、flashに値を渡すためにjsを実装すると、flashが値を取得できる場合と取得できない場合があります。その後、実際には に対応するフラッシュがロードされておらず、フラッシュ内の ExternalInterface.addCallback() によって開かれたメソッドが呼び出され始めていたことが原因であることが判明しました。 js では、フラッシュが取得されません。時間が来ると音楽が再生されます。この時点では、当然ながら再生できません。値が正常に転送されることを保証するには、フラッシュがロードされた後に値を転送する必要がありますが、どう判断すればよいでしょうか。実際には、フラッシュのオープン 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% かどうかでわかります。完了していない場合は、完了するまで監視を続けます。成功した後、
は値を再度渡します。その場合のみ、値の転送が成功することが保証されます。