Korzystanie z klasy Capabilities

Flash Player 9 i nowsze wersje, Adobe AIR 1.0 i nowsze wersje

Klasa Capabilities umożliwia programistom określenie środowiska, w którym jest uruchomiona aplikacja. Korzystając z różnych możliwości klasy Capabilities, można odczytać rozdzielczość ekranu w systemie użytkownika, sprawdzić, czy system współpracuje z oprogramowaniem ułatwiającym dostęp osobom niepełnosprawnym, określić język systemu operacyjnego użytkownika, a także numer zainstalowanej wersji środowiska wykonawczego Flash.

Na podstawie odczytanych właściwości klasy Capabilities można dostosować działanie aplikacji do konkretnego środowiska użytkownika. Na przykład, odczytując właściwości Capabilities.screenResolutionX i Capabilities.screenResolutionY , można określić rozdzielczość ekranu w systemie operacyjnym i na tej podstawie dobrać rozmiar wideo. Z kolei właściwość Capabilities.hasMP3 pozwala sprawdzić, czy system użytkownika umożliwia odtwarzanie dźwięku w formacie MP3 jeszcze przed podjęciem próby załadowania zewnętrznego pliku MP3.

W poniższym kodzie użyto wyrażenia regularnego w celu odczytania numeru wersji środowiska wykonawczego Flash używanego przez klienta:

var versionString:String = Capabilities.version; 
var pattern:RegExp = /^(\w*) (\d*),(\d*),(\d*),(\d*)$/; 
var result:Object = pattern.exec(versionString); 
if (result != null) 
{ 
    trace("input: " + result.input); 
    trace("platform: " + result[1]); 
    trace("majorVersion: " + result[2]); 
    trace("minorVersion: " + result[3]);     
    trace("buildNumber: " + result[4]); 
    trace("internalBuildNumber: " + result[5]); 
} 
else 
{ 
    trace("Unable to match RegExp."); 
}

Aby przesłać informacje o możliwościach systemu do skryptu po stronie serwera i zapisać je w bazie danych, można użyć następującego kodu w języku ActionScript:

var url:String = "log_visitor.cfm"; 
var request:URLRequest = new URLRequest(url); 
request.method = URLRequestMethod.POST; 
request.data = new URLVariables(Capabilities.serverString); 
var loader:URLLoader = new URLLoader(request);