Przekazywanie prametrów do aplikacji SWF za pomocą adresu URL

01-06-2010 przez Piotr Wierzgała Zostaw odpowiedź »

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 ‘&’.

nazwa_pliku.swf?parametr1=wartosc1&parametr2=wartosc2&parametr3=wartosc3

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 wartosc1:String = application.parameters.parametr1;
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ć.

if (application.loaderInfo != null) {
    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.

Reklama

Dodaj komentarz

Flexmaniaks on Facebook