【问题标题】:How to expose the JavaScript interface for an embedded Flash object?如何为嵌入的 Flash 对象公开 JavaScript 接口?
【发布时间】:2010-12-03 08:26:49
【问题描述】:

JavaScript 和 Flash Player 可以通过 Flash 的 ExternalInterface 机制交换数据:您注册希望能够从 JavaScript 调用的 ActionScript 函数。

我的问题:如何确定 Flash 对象的哪些 ActionScript 函数可供我从 JavaScript 调用(假设它们没有记录在案)?

在 JavaScript 中是否有一种编程方式来执行此操作?

谢谢!

【问题讨论】:

    标签: javascript flash actionscript-3 actionscript externalinterface


    【解决方案1】:

    您不能直接枚举它们(它们不会在 for..in 循环中列出),但您可以明确地测试每一个...

    var swf = document.getElementById('theID');
    alert('someMethod' in swf);  // will alert true if 'someMethod' is exposed via ExternalInterface.addCallback
    

    如果在 $(document).ready 或 window.onload 期间调用,这可能会失败 - 必须对 swiff 进行“初始化”(加载并注册),以使公开的方法完全可用。

    【讨论】:

    • 但是我不需要用这种技术“猜测”正确的方法名称吗?我认为这不会奏效。还是谢谢!
    • 你总是可以 XMLHttpRequest 一个 .swf 的副本,使用基于 javascript 的 zlib/gz/uncompress 例程(它们存在)解压缩它,然后搜索要测试的字符串,或者编写一个超级简单的解析器,从这里复制一些源代码github.com/CyberShadow/RABCDAsm
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 2012-08-09
    • 2017-04-26
    • 2018-05-22
    • 1970-01-01
    • 2010-09-07
    相关资源
    最近更新 更多