Mit der statischen
getCapabilities()
-Methode der CapabilitiesGrabber-Klasse werden alle Eigenschaften der flash.system.Capabilities-Klasse zu einem Array (
capDP
) hinzugefügt. Dann wird die statische
getBrowserObjects()
-Methode der CapabilitiesGrabber-Klasse aufgerufen. Bei der
getBrowserObjects()
-Methode wird mithilfe der externen API das Navigatorobjekt des Browsers durchlaufen, das die Browserinformationen enthält. Die
getCapabilities()
-Methode lautet wie folgt:
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;
}
Die
getBrowserObjects()
-Methode gibt ein Array aller Eigenschaften im Navigatorobjekt des Browsers zurück. Wenn dieses Array mindestens ein Element aufweist, wird das Array der Browserinformationen (
navArr
) an das Array der Flash Player-Informationen (
capDP
) angehängt. Das gesamte Array wird dann alphabetisch sortiert. Das sortierte Array wird schließlich an die Datei der Hauptanwendung zurückgegeben, die dann das Datenraster füllt. Der Code für die
getBrowserObjects()
-Methode lautet wie folgt:
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;
}
Wenn die externe API in der aktuellen Umgebung des Benutzers verfügbar ist, wird in der Flash-Laufzeitumgebung die JavaScript-Methode
JS_getBrowserObjects()
aufgerufen, mit der dann das Navigatorobjekt des Browsers durchlaufen und ein String mit URL-kodierten Werten an ActionScript zurückgegeben wird. Dieser String wird dann in ein URLVariables-Objekt umgewandelt (
itemVars
) und zum
itemArr
-Array hinzugefügt, das an das aufrufende Skript zurückgegeben wird.