javascript - Actionscript 3 javascript 通信 : Object #<HTMLEmbedElement> has no method

标签 javascript flash actionscript-3 externalinterface

我试图从 Javascript 调用 Actionscript 3 方法,但 Chromes 给出了以下错误:

Object #<HTMLEmbedElement> has no method

我把我的 SWF 放到页面如下:

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

ActionScript 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 事件。

关于javascript - Actionscript 3 javascript 通信 : Object #<HTMLEmbedElement> has no method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6452906/

相关文章:

javascript - Mongodb 和 MapReduce - 结果丢失

javascript - 使用 Ajax 加载 Rails 部分

flash - 在浏览器中从 Flash 录制 mp3 的最简单/最好的方法是什么

javascript - 您见过的最令人印象深刻的 Javascript/Flash/Silverlight 示例是什么?

android - 在全屏模式下如何将 Android 平板电脑浏览器 Flash 电影锁定为横向

actionscript-3 - Flash Player 11 中的 Stage3D 不显示

javascript - AJAX 响应后提交表单时出现VerifyCsrfToken 异常

javascript - 如何从 XMLHttpRequest.responseText 解析 HTML 属性值?

android - 在 Android Jelly Bean 中播放 flash 文件

actionscript-3 - 连接到Adobe AIR中的远程数据库