2010-06-23 82 views
1

我需要从querystring中获取值并将它们注入getURL(“”);在一个按钮上的(释放){}片段。Flash ActionScript获取查询字符串值

所以,如果包含嵌入的SWF文件的URL是

http://domain.com/player.html?returndomain=otherdomain.com

我想拿到otherdomain.com并注入它。类似于

var returnUrl = ""; 
// do magic querystring getting 
getURL(returnUrl); 

*编辑:我需要阻止查询字符串,因为我无法访问嵌入代码。它由第三方呈现(Articulate)并加载到框架中。我确实可以访问呈现框架html的代码,这就是为什么我认为查询字符串是最佳路线以及演示文稿中使用的一个按钮。

请注意,我住在C#的土地上,而不是ActionScript的土地,所以我很可能会使用语法。我只需要让这个按钮作为一个关闭工作,我可能永远不会再处理它。

顺便说一句,我已经看到了漂浮在那里的abdulqabiz QueryString对象,但它看起来像矫枉过正,就像应该有东西烘焙到框架中。我也缺乏如何将这个插入到我的小按钮上的知识(发布){}事件

回答

4

你可以得到查询字符串是这样的:

import flash.external.ExternalInterface; 
var queryString:String = String(ExternalInterface.call("function() { return window.location.search; }")); 

对于你上面的例子,它会返回“returndomain = otherdomain.com?”,其中包括了问号。

this.loaderInfo.url是ActionScript 3的缩写,在ActionScript 2中它是this._url,它会给你swf文件的URL,而不是页面的URL。

+0

令人沮丧。所以我得到了一切与你的帮助。事实证明,第三方创作工具(Articulate)不支持AS 3.它们提供了一种称为Web对象的解决方法,但它似乎无法获取URL。我怀疑它正在加载一些内部Flash网页浏览器或其他内容,因为它是页面上较大的.swf的一部分。 你有上面的代码的AS 2友好版本吗? – Dzejms 2010-06-24 17:50:13

+0

不要担心。清晰完全消除了抓取当前URL或查询字符串的可能性。我不知道它是否允许ExternalInterface或什么,但没有任何作用。我结束了一个使用LoadVars()从文本文件读取的解决方案。谢谢你的帮助。你回答了这个问题,在正常的情况下,我已经完成了,并在几个小时前的路上! – Dzejms 2010-06-24 19:42:48

0

有很多选项对你开放,但我想最简单的方法就是使用FlashVar。您可以在您的HTML Embed代码中将字符串定义为FlashVars,然后您将在ActionScript中访问它们。

您使用的是AS2还是AS3?

无论哪种方式,只是谷歌“如何使用FlashVars”,你应该设置。让我知道,如果有任何一部分令人困惑或令人沮丧,我可以帮助你逐步完成。

+0

我忘了添加我正在处理的约束。我无法触摸嵌入代码。我只能控制这个按钮。我将编辑该问题。 – Dzejms 2010-06-23 20:09:48

+0

我还打算建议将工作外包给JavaScript,然后用ExternalInterface调用你的JS方法 - 这是一个选项,还是你的双手绑定在那里呢? 你可以得到URL信息的最后一种方法是使用“this.loaderInfo.URL” - 但我永远不会记得它是否返回SWF的URL或包含HTML的URL ... – Myk 2010-06-23 20:26:51

+0

this.loaderInfo.URL看起来有希望明天我会试一试。谢谢! – Dzejms 2010-06-23 20:36:21