Statyczna metoda
getCapabilities()
klasy CapabilitiesGrabber dodaje właściwość z klasy flash.system.Capabilities do tablicy (
capDP
). Następnie wywołuje statyczną metodę
getBrowserObjects()
w klasie CapabilitiesGrabber. Metoda
getBrowserObjects()
wykorzystuje zewnętrzny interfejs API do przeglądania w pętli obiektu navigator przeglądarki. Obiekt ten zawiera informacje o możliwościach przeglądarki. Metoda
getCapabilities()
ma następującą postać:
public static function getCapabilities():Array
{
var capDP:Array = new Array();
capDP.push({name:"Capabilities.avHardwareDisable", value:Capabilities.avHardwareDisable});
capDP.push({name:"Capabilities.hasAccessibility", value:Capabilities.hasAccessibility});
capDP.push({name:"Capabilities.hasAudio", value:Capabilities.hasAudio});
...
capDP.push({name:"Capabilities.version", value:Capabilities.version});
var navArr:Array = CapabilitiesGrabber.getBrowserObjects();
if (navArr.length > 0)
{
capDP = capDP.concat(navArr);
}
capDP.sortOn("name", Array.CASEINSENSITIVE);
return capDP;
}
Metoda
getBrowserObjects()
zwraca tablice dla poszczególnych właściwości w obiekcie navigator przeglądarki. Jeśli tablica ma co najmniej jeden element, informacja o możliwościach przeglądarki (
navArr
) jest dopisywana to tablicy możliwości programu Flash Player
capDP
), a cała tablica jest sortowana alfabetycznie. Na koniec posortowana tablica jest zwracana do głównego pliku aplikacji, który zapełnia widoczną tabelę danych. Oto kod metody
getBrowserObjects()
:
private static function getBrowserObjects():Array
{
var itemArr:Array = new Array();
var itemVars:URLVariables;
if (ExternalInterface.available)
{
try
{
var tempStr:String = ExternalInterface.call("JS_getBrowserObjects");
itemVars = new URLVariables(tempStr);
for (var i:String in itemVars)
{
itemArr.push({name:i, value:itemVars[i]});
}
}
catch (error:SecurityError)
{
// ignore
}
}
return itemArr;
}
Jeśli w bieżącym środowisku użytkownika jest dostępny zewnętrzny interfejs API, środowisko wykonawcze Flash wywołuje metodę JavaScript
JS_getBrowserObjects()
, która w pętli przegląda obiekt navigator przeglądarki i zwraca do kodu ActionScript ciąg wartości zakodowanych jako adresy URL. Ten ciąg jest następnie konwertowany na obiekt URLVariables (
itemVars
) i dodawany do tablicy
itemArr
, która zostaje zwrócona do skryptu wywołującego.