【问题标题】:SWFobject embedded swf, ExternalInterface.Call returns nullSWFobject 嵌入 swf,ExternalInterface.Call 返回 null
【发布时间】:2012-04-09 07:28:47
【问题描述】:

我正在开发一个带有 django 后端的 Flash 游戏,使用 swfobject 将 swf 嵌入到视图中, 但是,当我在 InternetExplorer 中从 flash 执行 externalinterface.call() 时(Chrome 和 Firefox 都可以),它返回 null

Flash 游戏本身完美运行

Django 查看和嵌入代码:

<div id="game_container">
    <div id='flashContent'></div>
    </div>
    <script type="text/javascript" src="swfobject.js"></script>
    <script type='text/javascript'> 
    var flashvars={{flashvars|safe}};
    var params={wmode:"opaque", allowscriptaccess:"always" };
    var attributes={id:"flashContent", name:"flashContent"};
    swfobject.embedSWF("{{SWF_URL}}", "flashContent", "{{ appsettings.SWF_WIDTH }}", "{{ appsettings.SWF_HEIGHT }}", "10.0.0", false, flashvars, params, attributes);
</script>


function fqlearn_isEventInteresting(data) {
ln_log(['isEventInteresting',data]);
if (!BASE_URL) BASE_URL = data.baseURL;
ln_log(['got lesson?',fqlearn_findLearningModule(data) != null]);
return fqlearn_findLearningModule(data) != null;
//shuld return either true or false.
}

Flash AS3 代码:

var isInteresting:Object = false;

        try {
            isInteresting = ExternalInterface.call('fqlearn_isEventInteresting', data);
        } catch (e:Error) {
            trace("error calling external interface");
            // Container does not support outgoing calls :/
            rpc.forceLogUncaughtError("ExternalInterface.call problem",
                e.name, e.toString(), e.getStackTrace());
            rest.apply(restThis);
            return;
        } catch (e:SecurityError) {
            // Security sandbox nonsense :/
            throw e;
        }

        if (isInteresting == null) {
            // Something went wrong :/
            rpc.forceLogUncaughtError("ExternalInterface.call problem", "JS_returned_null_error");
        }

        if (isInteresting) {
            trace("showing learning blackout")
            dispatch(CoordinationEvent.newLEARNING_ABOUT_TO_SHOW());

            learningPendingData = {
                rest: rest,
                restThis: restThis
            };

InternetExplorer 中的 Flash 中的 ExternalInterface.call()(Chrome 和 Firefox 都可以),它返回 null 。我该如何解决这个问题?

【问题讨论】:

    标签: django flash


    【解决方案1】:

    已修复:console.debug 阻塞了 Internet Explorer。我删除了这些,它起作用了。

    【讨论】:

      猜你喜欢
      • 2013-09-10
      • 1970-01-01
      • 2013-02-12
      • 2010-10-16
      • 2011-06-10
      • 1970-01-01
      • 2017-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多