air去除邊框,及啓動畫面

編輯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 AIRas代碼的方法,不太適合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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章