2009-07-22 78 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