【问题标题】:ExternalInterface.call not returning object in IEExternalInterface.call 不在 IE 中返回对象
【发布时间】:2012-06-15 05:21:16
【问题描述】:

我正在 actionscript 中进行以下调用

var data:Object = ExternalInterface.call("getData");
trace("data is", data);  // data is null in IE7-9, but works in FF

到下面的javascript函数

function getData() {
    var data = {example : "data"};
    console.log("data", data); //displays as expected in the console
    return data;
}

使用 swfObject2 嵌入以下代码(从我现有的代码中复制并清理一下,尽管下面会有一些未定义的变量):

var This                = this,
    divId               = "myDiv",
    widgetData          = serviceData.flashvars,
    swfURL              = "http://mysite.com/my.swf",
    flashvars           = widgetData,  //external object, not used in this case
    params              = {
        movie: serviceData.swfURL,
        pluginspage: "http://www.adobe.com/go/getflashplayer",
        align: "middle",
        allowScriptAccess: "always",
        quality: "high",
        allowFullScreen: "true",
        wmode: "transparent",
        bgcolor: "#FFFFFF",
        menu: "false"
    },
    expressInstallURL   = "http://mysite.com/expressInstall2.swf?2",
    attributes          = {id : divId + "_mySWF", name: divId + "_mySWF"},
    callback            = function (e) {
        console.log("player loaded");
    };
flashVideoPlayer = swfobject.embedSWF(swfURL, divId, widgetData.width, widgetData.height, "10", expressInstallURL, flashvars, params, attributes, callback);

并且所有常用的都包含在 html 中,例如 ids、allowscriptaccess,而且我不在表单标签内。我知道没有初始化问题,因为 javascript 在 getData 中显示数据,因此该函数在调用之前必须存在,等等。问题似乎在于 javascript 将对象返回到 flash。

this post 似乎也没有帮助,但我的情况有点不同,因为我使用的是 swfObject。 我做错了什么还是这是一个错误?

【问题讨论】:

  • 为可爱的 graviatar +1 ..!
  • 我在 IE-7 Win 浏览器中尝试了同样的方法,它似乎工作正常
  • 它唯一可以破坏的地方是 IE 在console.log("data", data); 中无法识别console

标签: javascript actionscript-3


【解决方案1】:

我不确定你提供的那一行 AS3 代码是否就是你所得到的,但如果是这样,你可以尝试以下方法:

private function sendToJS(e:MouseEvent):void {  
    if(ExternalInterface.available) {  
        ExternalInterface.call("fromAS", doSomethingHere);  
    }  
}

我自己用过一次。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多