javascript - 在 Javascript 中获取 ExternalInterface 定义

标签 javascript flash actionscript externalinterface

有没有办法从 Flash 对象中获取公开函数的列表?例如,您可以通过执行以下命令获取对象中所有方法的列表:

for (var i in object) {
  if (typeof object[i] == "function") {
    console.log(i);
  }
}

唯一的问题是这不会公开任何通过 ExternalInterfaces API 注册的方法。我可以尝试查看该函数是否存在 (object['method']),它告诉我它是一个函数,但我必须以这种方式猜测每个现有方法。

注意:显然,我无权访问 ActionScript 。

最佳答案

刚刚提出这个问题,似乎有点晚了,但无论如何我都会发布一个答案;) 使用 IE10(Windows 7),我可以很好地列出我的所有方法,如下所示:

var obj = document.getElementById('flashObj');
for(var prop in obj){
  var fx = obj[prop];
  if(obj.hasOwnProperty(prop) && (typeof fx == 'function') && /eval\(instance/.test(fx)){
    console.log(prop)
  }
}

请注意,这在 Chrome 或 Firefox 中不起作用,并且只能使用确切的正则表达式,因为 IE10 不像其他浏览器那样报告“ native 代码”。

关于javascript - 在 Javascript 中获取 ExternalInterface 定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2052361/

相关文章:

javascript - 警告 : next-head-count is missing

javascript - 小数到分数转换器 jQuery 的过度简化

javascript - 如何使用时刻获取相同日期的数据?

actionscript - var x :* mean in actionscript? 究竟是什么

javascript - JQuery DataTable设置默认空搜索Echo参数

android - 通过 Actionscript 2.0 创建 Android 应用程序的可用选项

iphone - 在没有 iTunes/越狱/AppleDev 的情况下在 iOS 上测试 Flash 游戏?

flash - 相邻 Sprite 上的矩阵变换导致子像素间隙

html - Flash 播放器覆盖绝对定位元素

php - ActionScript从php加载外部声音文件,并从php响应中找出实际的文件名?