2010-09-04 18 views
2

我想讓JavaScript從我的ActionScript中調用一個函數。需要關於Flash,ActionScript和JavaScript的幫助

的ActionScript:

import flash.external.ExternalInterface; 

ExternalInterface.addCallback("playSong", playSong); 

function playSong():void { 
    var _sound:Sound = new Sound(); 
    var _request = new URLRequest("music.mp3"); 

    _sound.load(_request); 
    _sound.play(); 
} 

的JavaScript:

swfobject.embedSWF('http://localhost/music.swf', 'musicplayercontrol1', '1', '1', '9', null, null, { allowScriptAccess: 'always', wmode: 'transparent' }, { }, function(e) { 
    document.getElementById('musicplayercontrol1').playSong(); 
}); 

我不斷收到不螢火定義的函數。任何人都知道我在做什麼錯了?我試圖在swf載入後儘快播放歌曲,並且確實有效。

回答

0

如果您在首次嵌入swf時直接調用該函數,則問題可能是swf尚未加載並準備就緒。直到您的ActionScript代碼(包括ExternalInterface.addCallback(「playSong」,playSong))被執行,該函數纔會被定義。因此,首先swf必須完全加載並執行ActionScript代碼,然後才能從JavaScript調用playSong()。

+0

謝謝,這解決了問題:) – Samer 2010-09-05 06:55:14