我正在尝试从Javascript调用ActionScript 3方法,但是Chrome出现以下错误:


  对象#没有
  方法


我将SWF放在页面上,如下所示:

<embed type="application/x-shockwave-flash" src="/subfolder/flash.swf" width="550" height="400" id="myFlash" name="myFlash" bgcolor="#FFFFFF" quality="high" />


动作3代码:

function query(fn:String, ln:String):void {
    a_txt.text = fn + " " + ln;
}
ExternalInterface.addCallback("queryFlash", query);


最后是Javascript:

function getFlashMovie(movieName) {
      var isIE = navigator.appName.indexOf("Microsoft") != -1;
      return (isIE) ? window[movieName] : document[movieName];
    }
$(document).ready(function() {
    getFlashMovie("myFlash").queryFlash("a", "b");
});


我在这里想念什么吗?

最佳答案

jQuery的ready()对应于DOMContentLoaded事件。这意味着HTML页面已完成加载,您可以访问DOM-但这不能保证您所有嵌入式图像和对象均已加载完毕。因此,您的Flash可能根本还没有加载。您应该改为监听窗口的load事件。

09-20 00:49