2009-07-22 107 views
1

我试图调用Javascript中闪光物体的动作不灵ExternalInterface的在IE

var movie = getFlashMovie("ap1_mod_hidden") 
movie.testExternalConnection(); 

function getFlashMovie(movieName) { 
    var isIE = navigator.appName.indexOf("Microsoft") != -1; 
    return (isIE) ? window[movieName] : document[movieName]; 
} 

我使用swfo包含了我的flash bject:

<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中却不行(真是令人惊讶:\)。它正确地获取电影对象,但无法调用externalinterface函数。这是说该属性没有定义。

我看过谷歌和SO没有成功...任何帮助将不胜感激!

+0

也许IE是胡思乱想,因为你没有提供str参数testExternalConnection。 – 2009-07-22 15:31:22

回答

5

我相信你想使用的ID,而不是股利要添加的SWF过这样:

function getFlashMovie(movieName) { 
    return swfobject.getObjectById("mod"); 
} 

因为你设置“国防部”作为id。

+3

swfobject.embedSWF实际上并不将swf插入指定的元素,而是替换该元素。有点奇怪! – 2009-07-22 15:33:58