Den statiska metoden
getCapabilities()
i klassen CapabilitiesGrabber lägger till alla egenskaper från klassen flash.system.Capabilities till en array (
capDP
). Sedan anropar den statiska metoden
getBrowserObjects()
i klassen CapabilitiesGrabber. Metoden
getBrowserObjects()
använder det externa API:t för att göra en slinga över webbläsarens navigerarobjekt, som innehåller webbläsarens egenskaper. Koden för metoden
getCapabilities()
är följande:
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;
}
Metoden
getBrowserObjects()
returnerar en array med alla egenskaper i webbläsarens navigerarobjekt. Om arrayen omfattar minst ett objekt, bifogas arrayen med webbläsaregenskaper (
navArr
) till arrayen med Flash Player-egenskaper (
capDP
) och sedan sorteras hela arrayen i alfabetisk ordning. Slutligen returneras den sorterade arrayen till huvudprogramfilen, som fyller datarastret. Koden för metoden
getBrowserObjects()
är följande:
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;
}
Om det externa API:t är tillgängligt i den aktuella användarmiljön, anropar Flash-körningen JavaScript-metoden
JS_getBrowserObjects()
, som gör en slinga över webbläsarens navigerarobjekt och returnerar en sträng med URL-kodade värden till ActionScript. Strängen konverteras sedan till ett URLVariables-objekt (
itemVars
) och läggs in i arrayen
itemArr
, som returneras till det anropande skriptet.