Air应用描述文件是设置AIR应用各项基本属性的一个XML文件.在使用FLEX开发时,它位于”项目文件夹/src/主文件名-app.xml”;在使用Flash CS3 开发时也会在创建AIR项目时自动生成,可以通过菜单Commands > AIR - Application and Installer Settings来可视化编辑,也可以手动编辑该XML文档.
应用描述文件包含AIR应用的各项属性,影响整个AIR应用,如它的名称,版本,版权,等等。理论上,应用描述文件可使用任意文件名。当我们使用Flash cs3创建一个空文件,并使用默认设置,应用描述文件会自动更名为application.xml并放进AIR项目的一个特殊目录中。
这个描述文件的结构是这样的:
AIR应用属性
**minimumPatchLevel:**与AIR命名空间一起,指示运行环境所需要的版本. AIR应用安装程序会提示用户下载所需版本的补丁.
基本应用信息
这段声明了程序的ID,版本,文件名,程序名,描述,版权
**id:[**必须] 该AIR应用的唯一标识符字符串.该元素必须,长度为1~212字符,限使用以下字符:
- 0-9
- a-z
- A-Z
- . (点)
- - (连字符)
为了使该标识的”唯一”,我们常常把作者所持有的域名倒写作前缀,比如org.mousebomb.TestApp前缀org.mousebomb就是mousebomb.org的倒写.
**version:[****必须]**设置AIR应用的版本号,这个版本号和AIR运行环境没有任何关系. 且AIR运行环境不解析这个版本号. 比如写: “1.0”, “.4”, “0.5”, “4.9”, “1.3.4a”.
**filename:[**必须] 这玩意就是AIR应用的主程序文件名(不用写扩展名),比如设置为”main”,那么AIR在安装时会生成一个可执行文件,文件名就是”main”. 该值可以设置为除以下字符以外的任何UTF-8字符:
字符
十六进制码
various
0x00 - x1F
*
x2A
“
x22
:
x3A
>
x3C
<
x3E
?
x3F
x5C
x7C
**name:[****可选,**但推荐] AIR安装程序执行时显示的标题;如果没有在installFolder元素中设置安装文件夹的话,name的值也被作为安装文件夹的名字.
**description:[**可选] AIR应用安装时显示的描述.
**copyright:[**可选] 版权信息. 在MAC系统中,该版权信息文字将显示在已安装的AIR 应用的About对话框中,也在Info.plist文件中作为NSHumanReadableCopyright的键值.
安装文件夹和开始菜单路径
**installFolder[**可选]: 确定默认安装目录下的子目录.
在Windows环境下,默认安装的子目录是Program Files目录下。在Mac OS, 它是/Applications目录。例如,如果installFolder属性设置为”Mousebomb AIR”,而AIR应用名为”ExampleApp”,那么该AIR应用是安装在”C:Program FilesMousebomb AIRExampleApp”(WINDOWS),或” /Applications/Mousebomb AIR/Example.app”(MacOS). 你也可以在installFolder中使用”/”来再建子目录.
这个元素为可选,如果没有设置,则AIR应用安装时将使用name的值作为安装子目录名.
**programMenuFolder:[**可选] 仅对windows有效,用来设置AIR应用在开始菜单中的目录.字符限制规则和installFolder一样.
初始化应用窗体的属性
当AIR程序加载后,运行环境根据initialWindow里的相关设置创建一个最初的窗体,将指定的SWF或者HTML文件装入窗体.
initialWindow的子元素值将用来设置最初的窗体属性,直到顶级文件加载完成.
content: 设置主要内容文件的URL,可以是一个SWF或者HTML文件.这个值是AIR应用安装目录为参照的相对路径.
注意:因为content元素的值要当作URL处理,所以这个内容的文件名必须符合RFC 1738规则编码. 比如空格符要表示为%20.
**title[**可选]: 窗体的标题.
**systemChrome[**可选]: 如果设置此属性值为standard,则显示系统风格的窗体,如果设置为none,则不显示系统风格窗体.这个属性在运行时不能改变.
**transparent[**可选]: 是否透明. true为透明,false为不透明,透明将时绘图速度变慢,并消耗更多内存.这个属性在运行时不能改变.
注意:当systemChrome为none时, transparent只能设置为true.
**visible[**可选]: 窗体是否可见,true为可见,false反之.官方说默认是false,可是我怎么建立项目默认是true呢…. 这个参数可以在运行时通过stage.nativeWindow.visible来设置.
**x, y, width, height[**可选]: 四个属性这么直白不用说了,如果不设置这些值,那么这些值将取决于SWF的设置(SWF),或者操作系统根据内容自动决定(HTML).
**minSize, maxSize[**可选]: 最小尺寸,最大尺寸.不设置的话将由操作系统决定.
**minimizable, maximizable, resizable[**可选]: 设置窗体是否可以最小化,最大化,缩放大小. 默认都是true.
设置图标文件(常用!)
你可以设置4种尺寸的图标文件,如果不设置,系统就用默认图标.
每个元素对应的图标文件大小须要与之符合,如果不符合,则操作系统会自动根据最接近的大小缩放图片.
注意:发布AIR包的时候需要把图标文件打包.
为达到最好效果,设计的图标最好能在32位和16位色下都正常显示.
为AIR应用的更新提供自定义的用户界面
虽然AIR是使用默认对话框来安装和更新AIR应用程序.但是你可以定制自己的程序更新用户界面,要显示你自定义的应用,得处理好更新程序本身.
假设你已安装了设置customUpdateUI为ture的AIR应用程序, 然后双击一个包含更新的.air安装包或者安装一个使用无缝安装功能的更新程序时,运行环境将打开你已经安装的版本让它来更新,而你的AIR应用程序逻辑上得决定如何正确进行更新操作(新版的application ID和publisher ID得和旧版的相互吻合). 这玩意没搞过,详细看官方http://livedocs.adobe.com/air/1/devappsflash/updating_apps_1.html#1032597
允许浏览器调用AIR应用
你是否使用过QQ,EMULE或者淘宝的wangwang?他们从网页上可以点击某个链接直接打开这个程序执行相关操作.如果设置为true,那么我们的AIR也可以被网页调用.实现这个功能一定要考虑安全问题,参见http://livedocs.adobe.com/air/1/devappsflash/app_launch_1.html#1039401(浏览器调用).
声明文件关联
[可选] 这个设置可以让AIR应用程序在安装后在系统种关联文件格式.如果已被其他程序关联了某种你要关联的格式,你可以覆盖掉这个关联:运行时使用NativeApplication.setAsDefaultApplication()方法.不过最好先得到用户的同意哦.
注意: NativeApplication.setAsDefaultApplication()这个方法只能关联在fileTypes中声明的格式. 参见http://livedocs.adobe.com/air/1/devappsflash/runtime_os_info_1.html#1036812(管理文件关联) http://livedocs.adobe.com/air/1/devappsflash/app_launch_1.html#1038002(捕捉命令行参数)
技术内容转载请注明来源,个人日记不允许转载,欢迎指出任何有错误或不够清晰的表达。可以邮件至 mousebomb@gmail.com