Wpis pokazuje w jaki sposób przekazywać parametry do aplikacji Flex za pomocą adresu URL a następnie co zrobić aby te parametry z adresu wydobyć.
FLEX 3.0
Przekazanie parametrów do aplikacji
Żeby przekazać parametry do aplikacji wystarczy na końcu adresu URL prowadzącego do pliku SWF dodać odpowiednio sformatowany ciąg nazw parametrów i ich wartości. Pierwszy parametr podajemy po znaku zapytania wstawiając między jego nazwę a wartość znak równości. Każdą kolejną parę nazwa-wartość oddzielamy od poprzedniej znakiem ‘&’.
Odczytywanie parametrów z adresu URL – sposób pierwszy
Do odczytania przekazanych w adresie URL wartości wystarczy odwołać się do obiektu parameters pola application wstawiając po kropce nazwę wybranego parametru.
var wartosc2:String = application.parameters.parametr2;
var wartosc3:String = application.parameters.parametr3;
Odczytywanie parametrów z adresu URL – sposób drugi
Dla tych, którzy szukają bardziej wyrafinowanego sposobu na odczytywanie parametrów z adresu URL polecam poniższy kod. Znalazłem go kiedyś w sieci, także nie jest on mojego autorstwa, ale źródła nie jestem już w stanie ustalić.
var url:String = application.loaderInfo.url;
var qm:int = url.lastIndexOf("?");
if (qm != -1) {
var query:String = url.substr(qm + 1);
var params:Array = query.split("&");
for (var i:int = 0; i < params.length; i++) {
var param:String = params[i];
var nameValue:Array = param.split("=");
if (nameValue.length == 2) {
var key:String = nameValue[0];
var val:String = nameValue[1];
}
}
}
}
Pole loaderInfo przechowuje informacje o wczytanym pliku obiektu, do którego się odnosi. W przypadku application będzie to oczywiście plik SWF. Po pobraniu z loaderInfro adresu URL pliku SWF kolejno:
- wydzielamy z niego część znajdującą się po znaku ‘?’ [query]
- otrzymany łańcuch dzielimy według znaku ‘&’ a uzyskane części nazwa=wartość zapisujemy do tablicy [params]
- kolejne pola tablicy z parametrami dzielimy według znaku ‘=’ a uzyskane części zapisujemy do zmiennych key i val, gdzie key jest nazwą parametru a val jego wartością
Właściwie to w miejscu wystąpienia zmiennych key i val powinniśmy je zapisywać do jakiejś tablicy, ale to już od programisty zależy co zrobi z otrzymanymi parametrami dlatego żeby zachować prostotę przykładu jest jak jest.