编辑air-app.xml中<systemChrome>none</systemChrome>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" showFlexChrome="false">showFlexChrome=false
http://www.flexer.cn/blog/?cat=44
这是一篇来自ultravisual blog的文章,向读者讲述如何给一个AIR应用创建一个启动界面,原文地址是:
http://ultravisual.co.uk/blog/2009/07/20/effective-splash-screens-for-adobe-air-applications/
说起启动界面,相信读者都很熟悉,当一个软件体积很大,导致加载比较缓慢的时候,通常的做法是显示一个启动界面,告诉用户这个软件正在启动,这在很大程度上改善了用户体验,因为用户通常情况下忍受不了软件的加载速度不是因为你的软件加载慢,而是你没有显示一个界面出来通知用户,这会让用户心理上感觉时间很漫长,可能几秒钟用户都无法等待,而如果有实时的界面显示,几十秒都不是很大的问题,举个例子,Adobe的Photoshop大家可能用过或接触过,它的体积是很大的,如果没有启动界面,你就会感觉启动无法忍受,甚至会怀疑自己点击错误没有成功启动Photoshop而去多点击几下。所以说启动界面在大体积的软件加载过程中的作用是非常大的,也是我们在软件设计的阶段需要考虑到的一个重要的问题。
同理我们在开发AIR应用(注意AIR也是桌面应用)的时候,也可以引入启动界面的机制。下面我们来看看如何在AIR开发中去实现这个功能。
首先需要先准备一张位图,这个图片用于你的程序加载完毕并显示之前,先显示给用户一个界面,可以是你的应用的Logo之类的,你可以用Photoshop或其它的位图处理工具来制作这个图片,在这个例子中,要使用的位图如下图所示:
下面让我们来看看实现的过程。首先我已经在Flex Builder中创建了一个AIR项目,并且我的主程序文件是基于“WindowedApplication”组件的,并且其它的弹出窗口是基于Window或其它的可弹出的绘图组件。window组件使用是非常方便的,所以这里我也将使用window作为我的启动界面的容器,并且需要设置的地方是去除这个Window的边框和系统样式,只保留要显示的那张位图。要删除系统边框和样式,你需要修改应用程序的配置XML并且更改以下的部分:
<systemChrome>none</systemChrome>
<transparent>true</transparent>
<visible>false</visible>
注意通过这样设置之后,系统默认将显示Flex的默认皮肤。在主程序文件的窗体中,这个样式非常酷,但是在启动界面的窗体中,我们还是需要把它的边框删除掉。你可以通过下面的设置来隐藏边框和皮肤:
type=”lightweight”
showFlexChrome=”false”
transparent=”true”
visible=”false”
然后我们希望启动界面的位置要处于屏幕的中央,可以通过更改这个窗体的坐标来实现,注意窗体跟Flash里其它的显示对象类似,也有自己的坐标定位(x,y),而计算它的位置我们又需要知道屏幕的尺寸,屏幕的尺寸我们可以通过Screen类来获取,代码示例如下:
private function init():void {
this.nativeWindow.x = Screen.mainScreen.visibleBounds.width/2 – this.width/2;
this.nativeWindow.y = Screen.mainScreen.visibleBounds.height/2 – this.height/2;
this.nativeWindow.visible = true;
}
在显示启动界面的同时,我们希望主界面是隐藏的,只是设置visible是false是不够的,我们同时给它设置坐标值是一个很大的负值,比如-2000,然后我们再添加启动界面到显示列表。
<x>-2000</x>
<y>-2000</y>
mainWindow = this.stage.nativeWindow;
mainWindow.visible = false;
splashScreen = new Splash_Window();
splashScreen.open();
在这个应用里,我只是简单的添加了一个Timer(计时器)来控制启动界面和主界面的显示/隐藏,实际上你在开发的时候可以根据具体的真实情况(比如数据的加载情况),来实时的控制这个过程。
源码下载地址:
Move to Flare from Frame
Flex AIR)Flex AIR如何去除窗口的边框、菜单栏
2010-03-23 11:44
最近做个AIR小项目,刚开始构建的时候遇到个比较头疼的去除AIR窗口边框的问题,网上搜索了一下大多都是Flash AIR用as代码的方法,不太适合Flex开发AIR,经研究后这里总结一下Flex开发AIR桌面程序去除窗口边框、菜单栏的方法,以及自定义最小化、关闭按钮。
`
一、去除窗口边框、菜单栏http://hi.baidu.com/taotao5453
`
方法1、更改xxxx-app.xml
打开项目主应用程序.MXML同文件夹内的xxxx-app.xml (xxxx和你的主应用程序名称相同),
找到其中的
<!--<systemChrome></systemChrome>- ->
<!--<transparent></transparent>- ->
将其改为(注意去除两边的注释符<!-- -->):
<systemChrome>none</systemChrome>
<transparent>true</transparent>
并在主应用程序.MXML中<mx:WindowedApplication增加2个属性:showStatusBar="false" showTitleBar="false"。
如果不是对AIR主窗口设置,而是对其中的弹出窗口就使用方法2,直接在属性中定义
`
方法2、对窗口容器使用属性定义
以<mx:Window容器为例,即可为它定义4个属性:systemChrome="none" transparent="true" resizable="false" showStatusBar="false" showTitleBar="false"
`
二、自定义最小化、关闭窗口按钮等http://hi.baidu.com/taotao5453
以对AIR主窗口<mx:WindowedApplication进行操作为例:
NativeApplication.nativeApplication.exit();//退出
NativeApplication.nativeApplication.activeWindow.close();//退出
NativeApplication.nativeApplication.activeWindow.minimize();//最小化
NativeApplication.nativeApplication.activeWindow.startMove();//开始拖动
如果是在主窗口类中则可用this替代NativeApplication即可。
如果是<mx:Window则是NativeWindow而不是NativeApplication。
原文地址:http://hi.baidu.com/wshe505/blog/item/a4743af2e2a2945c352accc3.html
|