如何在Flash AS3中从URL获取变量

7

我有一个链接需要我的Flash动画从中提取变量:

示例链接:
http://www.example.com/example_xml.php?aID=1234&bID=5678

我需要获取aID和bID的数字。

通过ExternalInterface,我可以将整个URL获取为字符串。

var url:String = ExternalInterface.call("window.location.href.toString");
if (url) testField.text = url;

不确定如何操作字符串以仅获取1234和5678数字。感谢任何关于此的提示、链接或帮助!

2个回答

12
创建一个 URLVariables 的新实例。
// given search: aID=1234&bID=5678
var search:String = ExternalInterface.call("window.location.search");
var vars:URLVariables = new URLVariables(search);
trace(vars.aID); // 1234
trace(vars.bID); // 5678

哇,谢谢 :) 我在哪里可以找到所有可能的“window.location”语法及其作用的信息? - Leon Gaban
2
@Leon,我个人喜欢Firefox/Gecko的参考资料,但还有其他可用的参考资料。https://developer.mozilla.org/en/DOM/window#Properties - Samuel Neff

1
var valuePairs:Array = url.substring(url.indexOf("?")+1).split("&");
var map:Object = new Object();
for (var i:int=0; i < valuePairs.length; i++) {
    var nextValuePair:Array = valuePairs[i].split("=");
    map[nextValuePair[0]] = nextValuePair[1];
}


trace(map["aID"]); // 1234

未经测试的代码!这只是简单的字符串操作。

而且...几乎是一行代码(也未经测试)

var map:Object = new Object();
var temp:Array;
for each (var i:String in /.*\?(.*)/.exec(url)[1].split("&")) map[(temp=i.split("="))[0]]=temp[1];

但是当然最好使用urlVariables :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接