2010-04-27 12 views
7

So habe ich eine URL, die ich meinen Flash-Film müssen extrahieren Variablen aus:Anfahrt/erhalten Variablen von URL in Flash AS3

Beispiel Link:
http://www.example.com/example_xml.php?aID=1234&bID=5678

Ich brauche die AID zu bekommen und die bID-Nummern.

Ich bin in der Lage, die vollständige URL in einen String über ExternalInterface

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

einfach nicht sicher, wie zu bekommen, wie den String zu manipulieren, nur die 1234 und 5678 Zahlen zu erhalten.

Schätzen Sie alle Tipps, Links oder helfen Sie mit diesem!

Antwort

12

eine neue Instanz von URLVariables erstellen.

// 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 
+0

woot danke :), wo ich Informationen über alle möglichen finden „window.location. Syntax und was sie tun –

+2

@Leon, ich persönlich wie die Firefox/Gecko Referenz, aber es gibt auch andere Referenzen zur Verfügung. Https : //developer.mozilla.org/de/DOM/window#Properties –

+0

oh wow, es gibt eine Tonne! Danke :) –

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 

Nicht getesteter Code! Dies ist nur mit einfacher String-Manipulation.

und ... fast 1-Liner (auch ungetestet)

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]; 

aber natürlich ist es wahrscheinlich besser mit URLVariables zu gehen :)