Flash对象了解它所在页面的内容是什么?

时间:2009-02-11 15:08:28

标签: flash actionscript flashvars

我所工作的组织创建了一个小型Flash小部件,我们鼓励支持者将其放置在他们的网站上。我正在尝试确定是否有办法改进从嵌入式小部件中获得的统计信息。

大多数情况下,我想获得加载小部件的网站的域名。现在我能够在服务器日志中看到引用者,但是包括完整的URL,我不想只是为了拔出域来编写我自己的日志处理系统。

我对ActionScript知之甚少,但我查看了ActionScript文档,看看能否找到一个明显的解决方案。我没有找到任何允许对象向浏览器询问页面URL的内容。 System.Capabilities类似乎提供了很多关于玩家环境的信息,但没有提供玩家被调用的地方(据我所知,但也许我错过了什么)。

3 个答案:

答案 0 :(得分:2)

Steps:
   1. Import external interface into your file: import flash.external.ExternalInterface;
   2. Initialize a variable to store the url path: var urlPath;
   3. Create a function to call external interface and assign the html page path to your variable: urlPath = ExternalInterface.call(”window.location.href.toString”);
   4. Call the function when/if needed.

示例:

使用javascript:window.location.href或window.location.href.toString(); 使用actionscript:ExternalInterface.call(“window.location.href.toString”); 外部接口html示例

来源:http://blog.circlecube.com/2008/01/02/get-current-url-to-flash-swf-using-an-external-interface-call/

获取查询字符串请参阅此文章:http://blog.circlecube.com/2008/03/20/get-current-url-and-query-string-parameters-to-flash-tutorial/

答案 1 :(得分:1)

是的,您可以获取引荐来源(或DOM中的任何其他内容)。编写抓取此信息的小javascript片段,并使用ExternalInterface将这些片段注入javascript页面。然后你可以做ExternalInterface.call(“eval”,“myfunction”)并让这些javascript方法将数据返回到flash。

答案 2 :(得分:0)

MochiBot是一个完全正确的服务,您可以使用他们的服务(它是免费的),也可以查看他们使用的代码(它是一个~40行类)。它们都可以在他们的网站上找到。

快速查看代码后发现,他们发送的大部分内容都是这两个:

Security.sandboxType;
Capabilities.version;