【问题标题】:ExternalInterface not working in IE外部接口在 IE 中不起作用
【发布时间】:2009-07-22 15:23:27
【问题描述】:

我正在尝试从 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 包含我的闪存:

<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 上都没有成功...任何帮助将不胜感激!

【问题讨论】:

  • 也许 IE 脾气暴躁,因为您没有将 str 参数提供给 testExternalConnection。

标签: javascript flash internet-explorer externalinterface


【解决方案1】:

我相信你想使用 id,而不是你添加 swf 的 div,所以:

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

因为您将“mod”设置为 id。

【讨论】:

  • swfobject.embedSWF 实际上并没有将 swf 插入到指定的元素中,而是替换了该元素。有点奇怪!
  • 很高兴为您提供帮助! swfobject 2.0的新div替换东西我第一次尝试设置externalinterface的时候也很困惑,旧版本只是替换了innerHTML,所以有点出乎意料。
  • 是的,我原以为它会改变 innerHtml...嗯,再次感谢 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-07
  • 2017-02-03
  • 1970-01-01
相关资源
最近更新 更多