La méthode statique
getCapabilities()
de la classe CapabilitiesGrabber ajoute chaque propriété de la classe flash.system.Capabilities dans un tableau (
capDP
). Elle appelle ensuite la méthode statique
getBrowserObjects()
de la classe CapabilitiesGrabber. La méthode
getBrowserObjects()
utilise l’API externe pour passer en boucle sur l’objet navigator du navigateur, qui contient les capacités du navigateur. La méthode
getCapabilities()
se présente comme suit :
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;
}
La méthode
getBrowserObjects()
renvoie un tableau de toutes les propriétés de l’objet navigator du navigateur. Si ce tableau contient un élément ou plus, le tableau des capacités du navigateur (
navArr
) s’ajoute au tableau des capacités de Flash Player (
capDP
) et le tableau résultant est trié par ordre alphabétique. Enfin, le tableau trié est renvoyé au fichier de l’application principale, qui ensuite remplit la grille de données. Le code de la méthode
getBrowserObjects()
se présente comme suit :
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;
}
Si l’API externe est disponible dans l’environnement de l’utilisateur, le moteur d’exécution Flash appelle la méthode JavaScript
JS_getBrowserObjects()
, qui passe en boucle sur l’objet navigator du navigateur et renvoie une chaîne de valeurs au format URL à ActionScript. Cette chaîne est alors convertie en un objet URLVariables (
itemVars
) et ajoutée au tableau
itemArr
, qui est renvoyé au script appelant.