主角:adobe.utils.ProductManager;
MXML文件:
<?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="init();"> <fx:Declarations> </fx:Declarations> <fx:Script source="Main1.as"/> </s:WindowedApplication>
运用一:判断客户机AIR的安装及环境
Main1.as:
import adobe.utils.ProductManager; private function getStatus():String { var hasAIR:ProductManager=new ProductManager("airappinstaller"); if (hasAIR.installed) { return "installed"; } else { var os:String=Capabilities.os; if (os == "Windows 95" || os == "Windows 98/ME") { return "unavailable"; } if (os.indexOf("Mac OS 10.0") == 0 || os.indexOf("Mac OS 10.1") == 0 || os.indexOf("Mac OS 10.2") == 0 || os.indexOf("Mac OS 10.3") == 0) { return "unavailable"; } if (os.indexOf("Windows") == 0 || os.indexOf("Mac OS 10") == 0 || os.indexOf("Linux") == 0) { return "available"; } return "unavailable"; } } private function init():void { switch (getStatus()) { case "installed": trace("已经安装AIR运行时"); break; case "unavailable": trace("当前系统无法安装AIR运行时"); break; case "available": trace("尚未安装AIR运行时"); break; } }
运用二:重启运用程序
Main2.as:
[注:]本例运用,需在app.xml中把
<allowBrowserInvocation>true</allowBrowserInvocation>
import adobe.utils.ProductManager; import flash.events.MouseEvent; import mx.core.FlexGlobals; import spark.components.Button; import spark.components.WindowedApplication; private function init():void { var restartBtn:Button=new Button(); restartBtn.x= restartBtn.y=114; restartBtn.label="重启系统" this.addElement(restartBtn) restartBtn.addEventListener(MouseEvent.CLICK, doRestartAppHandler) } private function doRestartAppHandler(event:MouseEvent):void { var app:WindowedApplication=WindowedApplication(FlexGlobals.topLevelApplication); var mgr:ProductManager=new ProductManager("airappinstaller"); mgr.launch("-launch " + app.nativeApplication.applicationID + " " + app.nativeApplication.publisherID); app.close(); }