我正在尝试让JavaScript从我的ActionScript中调用一个函数。
的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();
});
我不断从firebug获得一个函数。谁知道我做错了什么?我试着在swf加载时尽快播放歌曲,这肯定是有效的。
答案 0 :(得分:0)
如果在swf首次嵌入时直接调用该函数,问题可能是swf尚未加载并准备就绪。在执行ActionScript代码(包括ExternalInterface.addCallback(“playSong”,playSong))之前,该函数将是未定义的。因此,首先必须完全加载swf并执行ActionScript代码,然后才能从JavaScript调用playSong()。