我试图通过javascript调用flash对象中的一个动作:
为:
function testExternalConnection(str:String):Void {
_root.debug.htmlText = "testExternalConnection ok";
}
ExternalInterface.addCallback("testExternalConnection", this, testExternalConnection);
JS:
var movie = getFlashMovie("ap1_mod_hidden")
movie.testExternalConnection();
与
function getFlashMovie(movieName) {
var isIE = navigator.appName.indexOf("Microsoft") != -1;
return (isIE) ? window[movieName] : document[movieName];
}
我使用swfobject包含我的flash:
<span id="ap1_mod_hidden"></span>
<script type="text/javascript">
// Setting up the flash player
var flashvars = {
mp3Path: "stop",
artistName : "",
trackName : ""
};
var params = {
codebase: 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
src: '/flash/ap1_mod.swf',
quality: 'high',
pluginspage: 'http://www.macromedia.com/go/getflashplayer',
scale: 'showall',
devicefont: 'false',
bgcolor: '#999999',
name: 'ap1_mod',
menu: 'true',
id: 'mod',
allowFullScreen: 'false',
allowScriptAccess:'always', //sameDomain
movie: '/flash/ap1_mod.swf',
wmode: "transparent",
allowfullscreen: "true"
};
swfobject.embedSWF("/flash/ap1_mod.swf", "ap1_mod_hidden", "300", "300", "9.0.0", false, flashvars, params);
</script>
这里没什么好疯狂的。因此,此代码在所有内容中都能正常工作,但在Internet Explorer中却没有(令人惊讶的是:\)。它正确获取电影对象,但无法调用外部接口函数。它说的是没有定义属性。
我看过谷歌和SO没有成功......任何帮助都将不胜感激!
答案 0 :(得分:5)
我相信你想要使用id,而不是你正在添加swf的div:
function getFlashMovie(movieName) {
return swfobject.getObjectById("mod");
}
因为您将“mod”设置为id。