Il metodo statico
getCapabilities()
della classe CapabilitiesGrabber aggiunge ogni proprietà della classe flash.system.Capabilities a un array (
capDP
). Quindi, chiama il metodo statico
getBrowserObjects()
nella classe CapabilitiesGrabber. Il metodo
getBrowserObjects()
utilizza l'API esterna per eseguire elaborazioni cicliche dell'oggetto navigator del browser, che contiene le caratteristiche del browser. Di seguito è riportato il metodo
getCapabilities()
:
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;
}
Il metodo
getBrowserObjects()
restituisce un array di ogni proprietà dell'oggetto navigator del browser. Se questo array ha una lunghezza di uno o più elementi, l'array delle caratteristiche del browser (
navArr
) viene aggiunto all'array delle caratteristiche di Flash Player (
capDP
), quindi l'intero array viene ordinato alfabeticamente. Infine, l'array ordinato viene restituito al file dell'applicazione principale, che quindi completa la griglia di dati. Di seguito è riportato il codice per il metodo
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;
}
Se nell'ambiente utente corrente è disponibile l'API esterna, il runtime di Flash chiama il metodo JavaScript
JS_getBrowserObjects()
, che esegue delle elaborazioni cicliche dell'oggetto navigator del browser e restituisce ad ActionScript una stringa di valori con codifica URL. Questa stringa viene quindi convertita in un oggetto URLVariables (
itemVars
) e aggiunta all'array
itemArr
, che viene restituito allo script chiamante.