在flex页面中安装AIR程序
2010年07月17日
Submitted by john on Mon, 07/20/2009 - 18:59
为了使AIR应用程序的安装更方便快捷,adobe公司提供了air.swf文件。air.swf文件中的主类提供了自动安装AIR应用程度的API,为了在flex页面中安装AIR应用程序,我们可以定义一个SchoolshapeAIR_InstallBadge.as文件来加载air.swf文件中的主类,调用其提供的各种安装API。以下是SchoolshapeAIR_InstallBadge.as文件的源码:
public class SchoolshapeAIR_InstallBadge extends MovieClip
{
//在BROWSERAPI_URL_BASE加载air.swf
private const BROWSERAPI_URL_BASE: String = "http://airdownload.adobe.com/air/browserapi";
private const BROWSERAPI_URL_BACKUP: String ="http://localhost:8080/helpfiles";
private var _appURL: String = "http://localhost:8080/helpfiles/Schoolshape.air";
private var _appName: String = "Schoolshape";
private var _airVersion: String = "1.5";
private var airSWF:Object;
private var airSWFLoader:Loader;
// 初始化
public function SchoolshapeAIR_InstallBadge() {
airSWFLoader = new Loader();
var loaderContext:LoaderContext = new LoaderContext();
loaderContext.applicationDomain = ApplicationDomain.currentDomain;
airSWFLoader.contentLoaderInfo.addEventListener(Event.INIT, onInit);
try {
airSWFLoader.load(new URLRequest(BROWSERAPI_URL_BASE + "/air.swf"), loaderContext);
} catch (e:*) {
airSWFLoader.load(new URLRequest(BROWSERAPI_URL_BACKUP + "/air.swf"), loaderContext);
}
}
private function onInit(e:Event):void {
airSWF = e.target.content;
switch (airSWF.getStatus()) {
case "installed" :
break;
case "available" :
if (_appName && _appName.length > 0) {
Alert.show("In order to run " + _appName + ", this installer will also set up Adobe® AIR™.");
} else {
Alert.show("In order to run this application, this installer will also set up Adobe® AIR™.");
}
break;
case "unavailable" :
Alert.show("Adobe® AIR™ is not available for your system.");
break;
}
}
public function onButtonClicked(e:Event):void {
try {
switch (airSWF.getStatus()) {
case "installed" :
Alert.show("Download and open the AIR file to begin the installation.");
airSWF.installApplication( _appURL, _airVersion );
break;
case "available" :
Alert.show("Starting install...");
airSWF.installApplication( _appURL, _airVersion );
break;
case "unavailable" :
// 什么也不做
break;
}
} catch (e:Error) {
}
}
}
在flex页面中,我们定义一个按钮来触发SchoolshapeAIR_InstallBadge.as文件中的onButtonClicked方法,而需要的其他参数我们已经在SchoolshapeAIR_InstallBadge.as文件中定义了,从而不用从javaScript脚本文件中读取参数了,从而更简洁。
Posts Tagged ‘air.swf’Adobe AIR Badge详解Tuesday, January 12th, 2010
Adobe AIR SDK的Sample目录里面有一个Badge的应用,这个应用提供两个功能:
检验应用需要安装的AIR版本,如果当前系统版本不同,安装需要的版本。在线安装应用。可以用里面的程序来直接部署AIR应用,但是默认的Badge大小是217X180像素高。这个默认的UI不能满足更多定制的需求,需要对这个Flash进行改造,或者是通过定制标签来进行改变。
Badge的参数很多,设置起来比较麻烦。可以用Grant Skinner的Badger来代替烦琐的编码工作。这个Badger是一个AIR的应用,里面详细的列出了Badge的参数,你可以选择需要绑定的AIR文件,然后export你需要的Badge。
如果是还不能满足定制的需要,就需要重新编写Badge的代码了。如果使用Flex开发UI,就需要独立编写Badge的功能了。
整个badge的关键是把adobe的air.swf下载到应用中,并作为一个Object帮助我们安装AIR环境和AIR应用。
//air.swf地址 private static const AIR_SWF_URL : String = "http://airdownload.adobe.com/air/browserapi/air.swf"; _airSWFLoader = new Loader(); _airSWFLoader.contentLoaderInfo.addEventListener( IOErrorEvent.IO_ERROR,handleAIRSWFError); _airSWFLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, handleAIRSWFInit); try { _airSWFLoader.load(new URLRequest(AIR_SWF_URL)); } catch(e : *) { //自定义错误处理 }
handleAIRSWFInit函数里面处理下载AIR环境的检测。
private function handleAIRSWFInit(event : Event) : void { _airSWF = event.target.content; try { if(_airSWF.getStatus() == "installed") { //如果已经安装了应用,检测应用的版本。 } else if(_airSWF.getStatus() == "unavailable") { //系统无法安装AIR环境。 } else if(_airSWF.getStatus() == "available") { //系统可以安装AIR环境。 } } catch(e : *) { //自定义错误信息 } }
检测应用是否安装的方法是通过air.swf的getApplicationVersion方法。
//appID 是AIR应用的ID,在AIR的xml的配置文件有配置 //appURL是AIR应用的路径。 //appVersionCallback回调函数 _airSWF.getApplicationVersion(appID, appURL, appVersionCallback);
在回调函数中处理传进来的version参数,判断安装的情况。
private function appVersionCallback(version : String) : void { if(version == null) { //系统没有安装应用,进行安装操作。 } else if(checkVersion(_appVersion, version) == 1) { //系统安装了应用,但是版本比当前版本底,进行升级操作。 } else { //系统安装了应用,并且版本也与当前安装版本相同 //进行启动应用的操作。 } }
利用air.swf可以把安装和启动的功能集成到Flex的应用中,并且可以实现通过网站启动AIR应用。air.swf的功能还很多,后续的文章会进行详细的整理和说明,并且会Open Source一个ActionScript的封装类来继续简化使用,让开发者的精力集中到UI的设计中。
发表评论
-
关于动态贴图问题不能动态通过texture改变只能重新new 新material
2012-01-20 01:48 1618关于动态贴图问题不能动态通过texture改变只能重新new ... -
Flex学习收藏资料
2012-01-20 01:48 614Flex学习收藏资料 2010年09月16日 1、《Fl ... -
papervision3d学习笔记:图片墙(1)
2012-01-20 01:48 737papervision3d学习笔记:图片墙(1) 2010年 ... -
[AS3] Alternavta3d7.5教程(一)
2012-01-20 01:48 778[AS3] Alternavta3d7.5教程(一 ... -
广州工作2个月!差人的公司可以call我
2012-01-20 01:48 722广州工作2个月!差人的公司可以call我 2011年06月3 ... -
民国小学生的一篇作文
2012-01-19 09:35 684民国小学生的一篇作文 ... -
小学生作文能力的培养
2012-01-19 09:35 495小学生作文能力的培养 ... -
教小学生写作文1
2012-01-19 09:35 967教小学生写作文1 2011年09月09日 一、小学作文教 ... -
小学生期末评语
2012-01-19 09:35 523小学生期末评语 2010年0 ... -
小学生操行评语
2012-01-19 09:35 650小学生操行评语 2011年0 ... -
神机也有软肋 小米手机
2012-01-17 02:10 670神机也有软肋 小米手机 2011年09月11日 小米手机 ... -
Android中的3D相册
2012-01-17 02:10 1065Android中的3D相册 2011年11月28日 ... -
3D显卡
2012-01-17 02:10 5413D显卡 2011年08月30日 3D 显卡技术术语目前 ... -
揭开Wayland的面纱(一):X Window的前生今世
2012-01-17 02:10 753揭开Wayland的面纱(一):X W ... -
VLC各模块名称及功能介绍
2012-01-17 02:10 887VLC各模块名称及功能介绍 2010年10月28日 [3 ... -
SWF与SWF交互
2012-01-15 21:42 581SWF与SWF交互 2010年07月23日 在AS2里S ... -
利用反射调用另一个swf里的代码库
2012-01-15 21:42 579利用反射调用另一个swf里的代码库 2011年02月19日 ... -
AIR笔记 使用HTML
2012-01-15 21:42 670AIR笔记 使用HTML 2011年05月17日 a ... -
Flex Module 终极减肥篇之去掉最后哪一点赘肉
2012-01-15 21:42 596Flex Module 终极减肥篇之 ...
相关推荐
总之,FlexAir网页截图工具是一个强大的网页捕获工具,提供全面的截图和编辑选项,以及方便的分享和存储功能,能够满足用户在日常工作和学习中的各种截图需求。通过理解其主要组件和功能,用户可以更有效地利用这个...
3. 安装完成后,启动FLEX Builder,首次使用可能需要配置Adobe AIR SDK,这通常在偏好设置中完成。 **配置FLEX SDK** 1. 如果选择使用Apache Flex SDK,你需要手动下载并解压到指定目录。 2. 在FLEX Builder中,...
GIFPlayer是一款专门设计用于Flex和Adobe AIR环境的控件,其核心功能在于提供了一个强大的平台,使得开发者能够在Flex或Air应用程序中轻松地播放GIF动画。这款控件不仅支持常见的GIF动画,还可能包含一些高级特性,...
- `bee.htm`、`tinymce.htm`、`blank.htm`、`splash.htm`:这些可能是应用程序中的不同页面或视图,比如`bee.htm`可能是主界面,`tinymce.htm`可能使用了TinyMCE,一个流行的富文本编辑器,用于撰写博客内容。...
在给定的“Flex air 读写Excel文件”的主题中,我们将深入探讨如何在Flex Air中处理Excel文件,特别是涉及到中文字符的读写以及多页操作。 在Flex Air中读写Excel文件,通常需要借助第三方库,因为Flex原生并不支持...
AIR,即Adobe Integrated Runtime,允许开发者使用Flash和Flex技术创建能在桌面和移动设备上运行的应用程序。AIR提供了一个沙箱环境,使得应用可以在操作系统之上运行,同时具备访问本地系统资源的能力,如文件系统...
开发证书用于在开发过程中在测试设备上运行应用,而发布证书则是将应用提交到App Store或企业内部部署所必需的。获取这些证书,开发者需要在Apple Developer Portal上注册并完成相应的步骤。 "Flex"、"Flash"和"Air...
开发者需要了解如何在应用程序安装程序中本地化应用程序名称和说明,以及如何使用AIR HTML本地化框架。 14. 路径环境变量:最后,设置路径环境变量是使AIR应用可以在特定操作系统上正常工作的一部分。开发者需要...
9. **部署Flex应用**: 完成开发后,可以将Flex应用打包为SWF文件,然后嵌入到HTML页面中,或者通过Flex编译器生成AIR应用程序,实现桌面应用的部署。 10. **使用Flex Builder透视图**: MyEclipse会提供Flex Builder...
在Flex Air开发中,创建一个类似iPhone的导航条可以为应用程序提供更加直观和用户友好的界面体验。这个项目可能是从网络上获取的源代码,并经过了个人的调整和优化,以适应特定的需求或改进功能。Flex Air是Adobe的...
10. **Flex应用部署**:Flex应用可以通过SWF文件形式嵌入到HTML页面中,也可以打包成AIR应用在桌面环境下运行。发布流程包括编译、优化和打包,以确保应用能在不同环境中正常运行。 以上就是关于“Flex 页面实例...
- **第9章:音频与视频处理**:介绍了如何在应用程序中集成音频和视频内容,包括播放、录制和流媒体传输等功能。 - **第10章:利用设备特性**:讨论了如何充分利用移动设备的硬件特性,例如GPS定位、摄像头、加速度...
在Flex开发中,加载HTML页面是一项常见的需求,特别是在构建富互联网应用程序(RIA)时。Flex是一种基于Adobe AIR或Flash Player运行时的开放源代码框架,它允许开发者创建交互性强、可自定义的用户界面。而HTML则作为...
在安装基于Adobe AIR开发的应用程序之前,首先必须在计算机上安装Adobe AIR运行环境。标题提到的"adobe的air运行环境"就是这个关键的组件,它是所有AIR应用程序运行的基础。描述中指出,如果尝试安装依赖于Adobe AIR...
在《Flash + Flex + Air 移动开发入门经典》中,Chapter 9可能涵盖了关于移动设备特性的开发,例如触摸事件处理、屏幕适配、离线存储以及如何利用Air API访问设备硬件,如摄像头、GPS等。此外,可能还会讲解如何优化...
完成Flex应用开发后,可以通过Flex编译器将其打包成SWF文件,然后嵌入到HTML页面中,或者作为独立的AIR应用发布。此外,Flex还支持自定义部署策略,如沙箱限制、安全策略文件等。 九、Flex学习资源 “Flex中文帮助...
此外,还可以生成AIR应用程序,使其能在桌面环境中独立运行。 7. **Flex与后端通信** Flex应用通常需要与后端服务器进行数据交互,例如使用HTTPService或WebService。在MyEclipse中,可以方便地配置和测试这些服务...
标题中的“基于Flex AIR制作的网页浏览器组件,支持多标签和文件下载”表明这是一个使用Adobe Integrated Runtime (AIR)和Flex技术开发的Web浏览器组件。Flex是ActionScript 3.0的开发框架,常用于构建富互联网应用...