2007年9月5日 星期三

設定Adobe Air應用程式的屬性 教學

除了所有建立 AIR(Adobe Integrated Runtime )應用程式的需要的資來源檔以外,Adobe AIR應用程式還需要一個應用程式說明檔案,一個用來定義Adobe AIR應用程式基本屬性的XML檔案。

如果你使用Flex Builder 3,這個應用程式說明檔案檔案,在你建立一個新的AIR項目時,被自動的生成。
如果你使用Flex 的 AIR SDKs來開發Adobe AIR 應用程式,你需要自己手動建立這個檔案。


Adobe AIR應用程式說明檔案架構
Adobe AIR程式說明檔案application.xml,包含的Adobe AIR程式的全部屬性,如AIR程式的名字,版本,版權資訊,等等之類的。Adobe AIR程式說明檔案能使用任何檔名字。當建立一個新的項目時,Flex Builder 自動建立一個說明檔案。當你打包匯出Adobe AIR應用程式時,不論是用Flex Builder 還是 ADT,都會被重命名為application.xml,并且放在AIR包的一個特定目録下。

下面是一個Adobe AIR程式說明檔案的例子:

<?xml version="1.0" encoding="utf-8" ?>

<application appId="com.adobe.air.examples.HelloWorld" version="2.0"

xmlns="http://ns.adobe.com/air/application/1.0.M4">

<name>AIR Hello World</name>

<description>

This is the Hello World sample file from the Adobe AIR documentation.

</description>

<title>HelloWorld -- AIR Example</title>

<copyright>Copyright © 2006</copyright>

<rootContent systemChrome="none"

transparent="true"

visible="true"

width="640"

height="480">

HelloWorld-debug.swf

</rootContent>

<installFolder>Adobe/Examples</installFolder>

<icon>

<image16x16>icons/smallIcon.png</image16x16>

<image32x32>icons/mediumIcon.jpg</image32x32>

<image48x48>icons/bigIcon.gif</image48x48>

<image128x128>icons/biggestIcon.png</image128x128>

</icon>

<handleUpdates/>

<fileTypes>

<fileType>

<name>adobe.VideoFile</name>

<extension>avf</extension>

<description>Adobe Video File</description>

<contentType>application/vnd.adobe.video-file</contentType>

</fileType>

</fileTypes>

</application>

在程式說明檔案中定義Adobe Air程式屬性
在Adobe AIR程式說明檔案根部,包含有一個Adobe AIR程式的下列幾個屬性:
<application appId="com.adobe.air.HelloWorld" version="1.0"

xmlns="http://ns.adobe.com/air/application/1.0.M4">
appID 一個Adobe AIR應用程式唯一的旗標。這個屬性值限定在下列字元範圍之内:
  • 0-9
  • a-z
  • A-Z
  • . (dot)
  • - (hyphen)
這個值必須包含17到255個字元。

這個appId The 字符串典型的使用一個點分隔符層級,用一個反轉的DNS域名位址,一個JAVA包或類名,或者一個OS X通用的類別識別。這個類似DNS的形態不是强制的,不會在這個名字和域名之間建立任何聯繫。

version 指定的版本資訊(他和Adobe AIR執行時的虚擬機版本没有關係)。這個版本串是Adobe AIR應用程式設計者定義的。Adobe AIR虚擬機不會通過任何途徑解譯這個版本串。因此版本”3.0″并不假定是比目前的”2.0.”或例如:“1.0″, “.4″, “0.5“, “4.9″, “1.3.4a” 版本更高
xmlns 是AIR 的名字空間,你必須用預設的XML名字空間定義,這個名字空間將隨着Adobe AIR的每個發行版本而改變。

定義Adobe AIR應用程式的名字,標題,說明,版權,和裝載目録
name 的名字。必須定義在這個元素裡。

<name>TestApp</name>

在windos系統裡,它察看在應用程式的標題條和windows的開始功能表裡。在MAC OS裡,當Adobe AIR應用程式執行時它察看在功能表條裡。
title (可選項)察看在Adobe AIR應用程式裝載說明裡。
<title>TestApp from Adobe Systems Inc.</title>

description (可選項) 察看在Adobe AIR應用程式裝載說明裡。
<description>An MP3 player.</description>

copyright (可選項) Adobe AIR應用程式的版權資訊。
<copyright>Copyright © 2006 [YourCompany, Inc.]</copyright>

installFolder (可選項) 確定預設裝載目録的子目録。
<installFolder>Acme</installFolder>

在Windows系統裡某人的裝載子目録是Program Files 目録。在Mac OS系統裡,它是./Applications 目録。例如:installFolder屬性是設為“Acme”并且Adobe AIR應用程式名字是“ExampleApp”,那麽這個Adobe AIR應用程式在wodows系統裡將被裝載在C:\Program Files\Acme\Example,而在Mac OS裡將被裝載在./Applications/Acme/Example.app
如果你想指定嵌套的子目録,可以使用”/”字元作為目録分隔符,類似下面那様:
<installFolder>Acme/Power Tools</installFolder>

installFolder屬性可以包含任何Unicode (UTF-8) 字元,除了下列的字元以外,這些字元是被任何檔案系統所禁止使用的。
  • Character
  • Hex Code
  • various
  • 0×00 - x1F
  • *
  • x2A
  • x22
  • :
  • x3A
  • >
  • x3C
  • <
  • x3E
  • ?
  • x3F
  • \
  • x5C
  • |
  • x7C
installFolder 的屬性是可選的。如果你没有指定這個屬性,這個Adobe AIR應用程式將被裝載在基于name 屬性的預設裝載子目録。

定義Adobe AIR應用程式的 rootContent元素
application.xml檔案也指示了rootContent檔案。這個檔案是第一個被Adobe AIR應用程式載入執行的。它可能是一個SWF檔案或一個HTML檔案。
這個為rootContent 指定的值是一個相對于application.xml檔案根的URL。例如,在下列rootContent 的屬性裡,AIRTunes.swf 檔案(在和application.xml 檔案相同的目録下)被定義為Adobe AIR應用程式的根檔案。
<rootContent

systemChrome="none"

transparent="true"

visible="true"

height="400"

width="600">

AIRTunes.swf

</rootContent>

rootContent元素設定被載入執行的根内容的視窗之内的特徴。
systemChrome 如果你設定這個特徴為standard,將察看系統chrome(這個詞不知如何翻譯,應該是視窗基本的風格様式),如果你設定為none,系統chrome不會被察看。當使用Flex WindowedApplication 套件,這個套件將應用自訂的chrome。
transparent 如果想應用程式視窗支援aplha混合(透通效果)設定它為 “true”.當一個視窗被建立後,這個transprent屬性無法再被改變。一個具有透通屬性的視窗將察看比對慢,并且需要更多的其餘的記憶體。

重要輔助說明: 當systemChrome=”none”時只能設定transparent=”true” 。
visible 如果你想主視窗第一次建立時被隱藏,設定這個值為“false”。預設值是“true”。
你可以在你的Adobe AIR程式程式碼中讓主視窗起始時隱藏,然後設定它的位置和大小。然後你可以通過設定stage.window.visible (主視窗的)屬性為true,來察看它。跟多詳細説明請看Working with windows.

height, width 應用程式的視窗的高和寬。如果不設定這個特徴,視窗的大小將由根的SWF檔案决定設定,或者HTML情况,被作業系統設定。如果你設定visible特徴為“false”,你能加入程式碼去調整視窗的寬和高的屬性(在設定visible屬性為true之前) 。
指定Adobe AIR程式的icon圖像檔案
icon 屬性指定一個或更多的被Adobe AIR應用程式檔案使用的icon圖像檔案。含括一個圖像icon是可選的。如果你没有指定一個icon屬性,作業系統將察看預設的圖像。
這個指定的路徑是相對于Adobe AIR應用程式的根目録。支援PNG, GIF, 和JPEG的檔案格式。你能指定下列所有的icon圖像大小。

<icon>

<image16x16>icons/smallIcon.png</image16x16>

<image32x32>icons/mediumIcon.jpg</image32x32>

<image48x48>icons/bigIcon.gif</image48x48>

<image128x128>icons/biggestIcon.png</image128x128>

</icon>

如果指定了一個圖片,它必須是指定的大小。如果所有的大小没有提供,最接近的將被縮放到適合的大小,供作業系統提供給用户察看。
主意:圖像檔案不是自動被加入Adobe AIR套裝軟體裡的。當Adobe AIR應用程式被打包時,這個icon圖像檔案必須被包含在目前區域相對路徑下。

一個包含更新介面的訊號(翻譯比對怪异Signaling the inclusion of an update interface)
通常的,Adobe AIR裝載和更新應用程式使用預設的裝載對話方塊。然而你也能使用AIR Updater API為更新一個Adobe AIR應用程式,定義你自己的更新機制。去指定你的應用程式自己管理更新處理控點,你必須含括handleUpdates元素在Adobe AIR應用程式說明檔案裡:
<handleUpdates/>
當你的Adobe AIR應用程式的裝載版本,在應用程式說明檔案裡,含括handleUpdates元素,并且用户按兩下啓動一個新的 版本(appID屬性必須符合,即保證是同一個Adobe AIR應用程式)的AIR檔案,AIR執行時開啟這個應用程式被裝載的版本,而不是預設的AIR應用程式裝載器。你的程式邏輯上能够决定如何去處理更新操 作。
注意:handleUpdates 機制僅僅當應用程式已經裝載并且用户按兩下AIR檔案時才起作用。
(翻譯比對彆扭參看原文)When the installed version of your application includes the handleUpdates element in the application descriptor file and the user then double-clicks on the AIR file for a new version (the appID attributes must match), the runtime opens the installed version of the application, rather than the default AIR application installer. Your application logic can then determine how to proceed with the update operation.
Note: The handleUpdates mechanism only works when the application is already installed and the user double-clicks the AIR file.
更多資訊,看 Updating applications programatically.
註冊檔案類別(Registering file types)

檔案類別屬性讓你指定一些檔案類別給AIR應用程式註冊,示例如下:
The fileTypes property lets you specify any file types to be registered for the AIR application, as in this example:
<fileTypes>

<fileType>

<name>adobe.VideoFile</name>

<extension>avf</extension>

<description>Adobe Video File</description>

<contentType>application/vnd.adobe.video-file</contentType>

</fileType>

</fileTypes>

fileTypes元素是可選項。如果采用,你能指定一些數量的檔案類別註冊。
The fileTypes element is optional. If present, you can specify any number of file type registrations.
name 和 extension 屬性是每一個fileType 定義必須被含括的。注意extension是不含括前置的。description屬性是可選項。如果指定,作業系統可以用這個屬性值的内容去說明這個檔案類別。contentType也是可選項。
The name and extension properties are required for each fileType definition that you include. Note that the extension is specified without the preceding period. The description property is optional. If specified, the operating system may use the value of the description property to describe the file type. The contentType property is also optional.
當一個檔案類別被一個AIR應用程式註冊,無論何時一個用户開啟這個類別的檔案,這個程式將被呼叫。如果應用程式已經執行了,AIR將傳送一個呼叫 事件給這個執行的實例。否則AIR將首先啓動這個應用程式。在這兩個案例中,檔名和位置能從通過應用程式Shell物件傳送的InvokeEvent對 象中被找到。
When a file type is registered with an AIR application, the application will be invoked whenever a user opens a file of that type. If the application is already running, AIR will dispatch the invoke event to the running instance. Otherwise, AIR will launch the application first. In both cases, the file name and location can be retrieved from the InvokeEvent object dispatched by the application Shell object.