下载并试用了基于Apollo开发的Finetune Desktop感觉非常cool,先不谈它的功能怎么实现仅优秀的UI就令人佩服不已。于是周末抽空研究了下如何自定义Apollo应用程序外观,写篇日志分享之。
开发Apollo应用有很多种选择如:Flexbuilder+AIR,FlashCS3 with AIR extension+AIR,Dreamwaver with AIR extension +AIR,方便起见这里我用的是Flexbuilder3+AIR。
首先在builder里新建一个AIR的工程 File>New>AIR Project
如下图:

按照提示窗口给工程命名、选择存储路径到最后一步时会提示设置Apollo应用程序的相关信息,其实就是往下面要提到的工程名-app.xml文件写入信息,如下图:

ID:应用程序的唯一标识这里推荐域名为前缀。
Name:应用程序名称将在窗口title和任务栏显示。
这里的AIR工程里其实跟Flex工程大同小异由.mxml文件组成,但是工程名-app.xml文件是AIR所特有的,通过编辑它可以达到自定义Apollo应用程序的目的。
下面是Test-app.xml的内容
控制应用程序外观的属性主要在rootContent标签里面:
systemChrome -”standard” 或 “none”。如果设置为”standard”,应用程序打开时是带有像标题栏,最小化和关闭按钮的系统窗口。如果设置为”none”,应用程序必须自己提供窗口控制(Flex的WindowedApplication类提供一套只会在systemChrome=”none”时显示的窗口控制)
transparent - “true” 或 “false”。如果设置为”true”,应用程序支持完全透明。
visible - “true” 或 “false”。如果设置为”false”,主窗口在应用程序将window visible属性设置为”true”前不会显示。
width - 窗口的初始宽度 (包括窗口外框).
height - 窗口的初始高度 (包括窗口外框).
PS:( width - the initial window height (including chrome).
height - the initial window width (including chrome).高宽属性Adobe给写反了,低级错误?)
通过编辑以上节点的属性可以改变应用程序运行时的外观
[SWF reference is generated] 如果是Flex Builder运行时会自动填上
修改rootContent标签为
运行时是这样:

修改rootContent标签为
运行时是这样,其窗口外框是Flex WindowedApplication类提供的。

进一步修改将Test.mxml文件中mx: WindowedApplication 修改为mx:Application应用程序运行时显示是这样。

如果还需要进一步将系统提供的外观去除掉再编辑Test.mxml文件加入属性backgroundAlpha=”0.0″
应用程序运行时显示为这样,注意其中的“Hello World!”,窗口的其它元素均被完全透明掉,cool~

关于定制自己的标题栏,最小化,关闭按钮将在最后的代码部分给出,下面先说自定义Apollo应用程序的图标,Apollo支持的图标为.png文件现在准备好四个文件,尺寸分别为16×16,32×32,48×48,128×128然后拷贝至工程文件夹下这里是/assets内如图

在Test-app.xml中把<icon></icon>的注释去掉修改为一下内容
预览效果的话需要输出AIR包并安装运行,首先输出:

输出时必须把应用程序需要的资源文件勾选比如这里的图标文件夹assets

安装完毕后在任务栏和桌面显示的图标如下,目的达到。

自定义标题栏,最小化和关闭按钮就需要代码实现,下面是Flex builder中具体实现代码
自定义窗口元素外观:
用自定义元素移动最小化窗口:
Ok,至此Apollo应用程序自定义外观的方法就介绍的差不多了。Enjoy your creativity! 
admin#flashas.net (#为@) 联系QQ:
:40777822
浙ICP备06033001号