通过javascript访问swf文件中的函数[chatroulette.com]

时间:2010-04-28 16:49:12

标签: javascript actionscript-3 flash

最近我对chatroulette.com背后的代码感兴趣。您可能知道这是一个用动作脚本编写的点对点网络摄像头聊天服务,据我所知。我一直在想的是天气可以提取你正在与之沟通的任何人的IP地址。我见过这样做的服务,但是它们要求你安装一个程序,它在你的计算机上运行,​​同时嗅探UDP包。我想知道是否有更简单的方法。

我所知道的是页面上的javascript通过“ExternalInterface”与应用程序通信。在这个领域,我几乎是一个新手,但根据我的有限理解,你不能从flash应用程序获取信息,除非你已经为javascript调用配置了一个监听器,然后附加一个回调到该事件。这是正确的还是可以直接通过javascript访问公共函数和变量?

有一个像这样的公共函数:

public function get outgoingAddress():String{
    return (this.__info.outgoingAddress);
}

可以通过javascript直接访问吗?

如果不能轻易完成,是否可以反编译.swf文件,更改它(添加一些函数)并重新编译并运行它?我希望有人能满足我的好奇心。

2 个答案:

答案 0 :(得分:1)

不,不能通过JavaScript调用任意公共函数。您需要使用ExternalInterface。

ExternalInterface.addCallback("outgoingAddress", outgoingAddress);

答案 1 :(得分:1)

不是最符合道德的问题。但是,出于教育目的,您可能想要检查重新路由文件。有一篇关于它的文章here

简而言之,是的,当然可以反编译,添加一些功能,然后使用修改后的版本。然而,从道德上讲,这是错误的。代码不是你的,你可能违反了许可证,条款和条件。但这个理论很合理。