2012-07-05 81 views
1

我在HTML5遊戲中爲我的音頻使用Buzz庫。交叉菜單,無需音樂停止,我加載每個菜單的iframe和音樂從主頁推出:buzz.all()。靜音()在iframe中不起作用

<body style="overflow: hidden"> 
    <iframe id="MainFrame" src="./mainmenu.html" 
    frameborder=0 seamless="seamless" class="mainframe"></iframe> 

    <script> 
     window.onload = function() { 
      playLoop('audio/menumusic.mp3'); 
     } 
</script> 
</body> 

var playLoop = function(name) 
{ 
    sound = new buzz.sound(name, {preload: true, loop: true}); 
    sound.play(); 
    setInitialSoundState(sound); 
    loops.add(sound); 
} 

的事情是,我希望能夠切換/改變音樂在加載頁面在iframe中。但每當我使用

buzz.all().mute(); 

什麼也沒有發生。我猜測iframe中的buzz變量和主頁中的buzz變量不一樣。我如何訪問主頁的buzz,以便所有音樂都能正確靜音?

如果需要,我會很樂意給出更多細節。

回答

1

試試這個:

window.parent.buzz.all().mute(); 
// window.parent references an iframe's parent window 
// or the current window if the call is made from a regular page (i.e. not in an iframe) 
+0

也可以'window.parent.contentWindow.buzz.all()靜音();' – wizzard0 2012-07-05 16:39:20

+0

如果你是在同一個域中這工作得很好。不幸的是,我在本地工作,所以我遇到了一些安全錯誤。切換到postMessage()msg主窗口停止音樂。 – 2012-07-05 17:32:18