套件 | flash.display |
類別 | public class NativeMenu |
繼承 | NativeMenu EventDispatcher Object |
子類別 | ContextMenu |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0 |
AIR 描述檔支援:所有桌上型電腦作業系統都支援此項功能,但行動裝置或 AIR for TV 裝置不支援。您可以使用 NativeMenu.isSupported
屬性測試執行階段的支援狀況。如需有關跨多個描述檔之 API 支援的詳細資訊,請參閱 AIR 描述檔支援。
原生選單是一種由作業系統控制而不是由應用程式控制的選單。AIR 支援下列原生選單類型:
- OS X 支援應用程式選單。請使用
NativeApplication.supportsMenu
屬性,測試主機作業系統是否支援應用程式選單。應用程式選單會顯示在 Mac 桌面最上方的選單列中。OS X 提供預設選單給每一種應用程式,不過其中很多選單命令功能無效。您可以將事件偵聽程式新增至預設項目、取代個別選單和項目,或者還可以完全取代整個預設選單。使用 NativeApplicationmenu
屬性存取應用程式選單物件。 - Windows 和 Linux 支援 Window 選單。請使用
NativeWindow.supportsMenu
屬性來測試主機作業系統是否支援視窗選單。視窗選單是顯示在視窗標題列的下方。選單佔用的區域不屬於視窗舞台的一部分。應用程式無法在這個區域進行繪製。使用 NativeWindowmenu
屬性,將選單指定至視窗。 - OS X 支援停駐圖示選單。請使用
NativeApplication.supportsDockIcon
屬性,測試主機作業系統是否支援停駐圖示選單。停駐圖示選單中的項目會顯示在作業系統提供的預設項目上方。應用程式的程式碼無法存取預設的項目。請將選單指定至應用程式 DockIcon 物件的menu
屬性。 - Windows 和大部分的 Linux 作業系統支援系統匣圖示選單。請使用
NativeApplication.supportsSystemTrayIcon
屬性來測試主機作業系統是否支援系統匣圖示。為了回應在圖示上按滑鼠右鍵,會顯示一個系統匣圖示選單,和快顯選單的方式相同。請將選單指定至應用程式 SystemTrayIcon 物件的menu
屬性。 - 所有作業系統都支援快顯選單。為了回應使用者介面事件,例如在應用程式顯示的 InteractiveObject 上按滑鼠右鍵或按一下某個命令,會顯示快顯選單。顯示選單的 UI 作用機制,隨主機作業系統及硬體而有所不同。將選單指定至 InteractiveObject 的
contextMenu
屬性。在 AIR 中,可以使用 NativeMenu 類別或 ContextMenu 類別來建立快顯選單。在 Flash Player 中,只可以使用 ContextMenu 類別。AIR 中的 ContextMenus 沒有內建的項目;不會顯示預設的快顯選單。 - 所有作業系統都支援即現式選單。即現式選單的功能與快顯選單相同,不過是使用選單
display()
方法來顯示,而不是回應使用者介面事件。即現式選單不會附加至任何其他物件。只要建立原生選單,然後呼叫display()
方法即可。
選單物件包含選單項目。選單項目可以代表命令、子選單或分隔符號字行:使用 addItem()
或 addItemAt()
方法,將選單項目加到選單。選單項目的顯示順序符合選單的 items
陣列中項目的順序。
若要建立子選單,可以將選單項目加到父選單物件。將代表子選單的選單物件指定至父選單中相符之選單項目的 submenu
屬性。
注意:視窗和應用程式選單的根選單只能包含子選單項目。不應該顯示不代表子選單的項目,且會與使用者對這些選單類型的期望相反。
在選單中選取命令項目,或選單之子選單的其中一個項目時,選單就會傳送 select
事件 (子選單和分隔符號項目都是無法選取的)。此事件物件的 target
屬性會參考所選取的項目。
在顯示選單之前以及按下附加至選單中的其中一個項目的對等按鍵時,選單會傳送 preparing
事件。您可以使用此事件,根據應用程式的目前狀態更新選單的內容。
注意:如果您使用 Flex Framework,請考慮使用 FlexNativeMenu 類別。通常以宣告方式在 MXML 中定義選單,會比編寫 ActionScript 程式碼來建立選單結構逐一項目要來的簡單多了。
相關 API 元素
flash.display.NativeMenuItem
flash.display.NativeWindow.menu
flash.desktop.DockIcon
flash.desktop.SystemTrayIcon
flash.desktop.NativeApplication.menu
flash.desktop.NativeApplication.icon
mx.controls.FlexNativeMenu
屬性 | 定義自 | ||
---|---|---|---|
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
isSupported : Boolean [靜態] [唯讀]
指出用戶端系統是否支援原生選單的任何形式。 | NativeMenu | ||
items : Array
此選單中的 NativeMenuItem 物件陣列。 | NativeMenu | ||
numItems : int [唯讀]
此選單中的 NativeMenuItem 物件數目。 | NativeMenu | ||
parent : NativeMenu [唯讀]
父選單。 | NativeMenu |
方法 | 定義自 | ||
---|---|---|---|
建立新的 NativeMenu 物件。 | NativeMenu | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
會在 EventDispatcher 物件註冊事件偵聽程式,以便讓偵聽程式收到事件的通知。 | EventDispatcher | ||
將選單項目加入至選單底部。 | NativeMenu | ||
將選單項目插入指定位置。 | NativeMenu | ||
插入新的選單項目以便將子選單加入至選單。 | NativeMenu | ||
將新的選單項目插入指定位置,以便將子選單加入選單。 | NativeMenu | ||
建立選單與所有項目的副本。 | NativeMenu | ||
報告此選單是否包含指定的選單項目。 | NativeMenu | ||
會將事件傳送到事件流程。 | EventDispatcher | ||
在指定位置彈出此選單。 | NativeMenu | ||
取得指定索引位置的選單項目。 | NativeMenu | ||
取得指定名稱的選單項目。 | NativeMenu | ||
取得指定項目的位置。 | NativeMenu | ||
會檢查 EventDispatcher 物件是否有對特定的事件類型註冊偵聽程式。 | EventDispatcher | ||
指出物件是否有已定義的指定屬性。 | Object | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
移除選單的所有項目。 | NativeMenu | ||
會從 EventDispatcher 物件移除偵聽程式。 | EventDispatcher | ||
移除特定選單項目。 | NativeMenu | ||
移除並傳回位於指定索引位置的選單項目。 | NativeMenu | ||
將選單項目移至指定位置。 | NativeMenu | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
會傳回指定之物件的基本值。 | Object | ||
檢查此 EventDispatcher 物件是否已註冊事件偵聽程式,或者此物件的任何祖系已為特定事件類型註冊事件偵聽程式。 | EventDispatcher |
事件 | 摘要 | 定義自 | ||
---|---|---|---|---|
[廣播事件] 當 Flash Player 或 AIR 應用程式取得作業系統焦點並成為作用中時傳送。 | EventDispatcher | |||
[廣播事件] 當 Flash Player 或 AIR 應用程式失去作業系統焦點並成為非作用中時傳送。 | EventDispatcher | |||
在顯示選單之前,由此 NativeMenu 物件立即傳送。 | NativeMenu | |||
在按下對等按鍵但尚未顯示選單之前,會由 NativeMenu 物件傳送。 | NativeMenu | |||
在選取了所屬的任何一個選單項目或是所屬子選單後代 (任何一個) 中的某個項目時,由此 NativeMenu 物件傳送。 | NativeMenu |
isSupported | 屬性 |
items | 屬性 |
numItems | 屬性 |
parent | 屬性 |
parent:NativeMenu
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0 |
父選單。
根 (最頂層) 選單物件的 parent
會是 null
。
實作
public function get parent():NativeMenu
NativeMenu | () | 建構函式 |
public function NativeMenu()
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0 |
建立新的 NativeMenu 物件。
addItem | () | 方法 |
public function addItem(item:NativeMenuItem):NativeMenuItem
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0 |
將選單項目加入至選單底部。
建立快顯選單時,您可以加入 NativeMenuItem 或 ContextMenuItem 物件。不過,建議整個快顯選單只用一種物件類型,以確保選單中的所有項目具有相同的屬性。
注意:如果項目的子選單是設定成選單本身 (形成循環參考),則將項目加到選單後會造成應用程式當機。
參數
item:NativeMenuItem — 要加入至選單底部的 NativeMenuItem 物件。
|
NativeMenuItem |
擲回值
ArgumentError — 如果 item 為 null 。
| |
ArgumentError — 如果 item 是另一個選單的成員。
|
addItemAt | () | 方法 |
public function addItemAt(item:NativeMenuItem, index:int):NativeMenuItem
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0 |
將選單項目插入指定位置。會從頂端編製該位置的索引。將 index
參數設定為零,以便在選單頂端插入項目。所有類型的選單:視窗、應用程式、系統匣圖示、停駐圖示、快顯選單和彈出式選單,都會從頂端編製選單位置的索引。
參數
item:NativeMenuItem — 要插入的 NativeMenuItem 物件。
| |
index:int — 選單中要插入選單項目的 (從零開始) 位置。
注意:如果項目的子選單是設定成選單本身 (形成循環參考),則將項目加到選單後會造成應用程式當機。 |
NativeMenuItem |
擲回值
ArgumentError — 如果 item 為 null 。
| |
ArgumentError — 如果 item 是另一個選單的成員。
| |
RangeError — 如果 index 超出此選單之 items 陣列的邊界。
|
addSubmenu | () | 方法 |
public function addSubmenu(submenu:NativeMenu, label:String):NativeMenuItem
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0 |
插入新的選單項目以便將子選單加入至選單。
呼叫 addSubMenu()
方法就相當於建立新的選單項目、將它加入至選單,並將 NativeMenu 物件指定給該項目的 submenu
屬性。
注意:將選單新增為本身的子選單 (循環參考) 會造成應用程式當機。
參數
submenu:NativeMenu — 定義要加入之子選單的 NativeMenu 物件。
| |
label:String — 要加入之選單項目的顯示標籤。
|
NativeMenuItem — 針對子選單建立的 NativeMenuItem 物件。
|
addSubmenuAt | () | 方法 |
public function addSubmenuAt(submenu:NativeMenu, index:int, label:String):NativeMenuItem
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0 |
將新的選單項目插入指定位置,以便將子選單加入選單。
呼叫 addSubMenuAt()
方法就相當於建立新的選單項目、將它插入選單中所需的位置,並將 NativeMenu 物件指定給該項目的 submenu
屬性。
注意:將選單新增為本身的子選單 (循環參考) 會造成應用程式當機。
參數
submenu:NativeMenu — 定義要加入之子選單的 NativeMenu 物件。
| |
index:int — 此選單之 items 陣列中的位置,要在此位置插入要增加的項目。
| |
label:String — 要加入之選單項目的顯示標籤。
|
NativeMenuItem — 針對子選單建立的 NativeMenuItem 物件。
|
clone | () | 方法 |
containsItem | () | 方法 |
public function containsItem(item:NativeMenuItem):Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0 |
報告此選單是否包含指定的選單項目。
參數
item:NativeMenuItem — 要尋找的 NativeMenuItem 物件。
|
Boolean — true 表示 item 位於此選單中。
|
display | () | 方法 |
getItemAt | () | 方法 |
public function getItemAt(index:int):NativeMenuItem
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0 |
取得指定索引位置的選單項目。
參數
index:int — 要傳回之項目的 (從零開始) 位置。
|
NativeMenuItem — 位於選單中指定之位置的 NativeMenuItem 物件。
|
擲回值
RangeError — 如果 index 超出此選單之 items 陣列的邊界。
|
getItemByName | () | 方法 |
public function getItemByName(name:String):NativeMenuItem
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0 |
取得指定名稱的選單項目。
注意:預設不會指派選單項目的 name
屬性。
參數
name:String — 要尋找的字串。
|
NativeMenuItem — 具有指定之名稱的 NativeMenuItem 物件,如果選單中沒有這類項目則為 null 。
|
getItemIndex | () | 方法 |
public function getItemIndex(item:NativeMenuItem):int
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0 |
取得指定項目的位置。
參數
item:NativeMenuItem — 要尋找的 NativeMenuItem 物件。
|
int — 此選單中指定之項目的 (從零開始) 位置,如果選單中沒有該項目則為 -1 。
|
removeAllItems | () | 方法 |
removeItem | () | 方法 |
public function removeItem(item:NativeMenuItem):NativeMenuItem
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0 |
移除特定選單項目。
參數
item:NativeMenuItem — 要從此選單中移除的 NativeMenuItem 物件。
|
NativeMenuItem |
擲回值
RangeError — 如果 item 不在此選單中。
|
removeItemAt | () | 方法 |
public function removeItemAt(index:int):NativeMenuItem
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0 |
移除並傳回位於指定索引位置的選單項目。
參數
index:int — 要移除之項目的 (從零開始) 位置。
|
NativeMenuItem — 已移除的 NativeMenuItem 物件。
|
擲回值
RangeError — 如果 index 超出此選單之 items 陣列的邊界。
|
setItemIndex | () | 方法 |
public function setItemIndex(item:NativeMenuItem, index:int):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0 |
將選單項目移至指定位置。若項目尚未在選單中,呼叫此方法可以將項目新增至選單。
參數
item:NativeMenuItem — 要移動的 NativeMenuItem 物件。
| |
index:int — 選單中要移動 item 的 (從零開始) 位置。
|
擲回值
RangeError — 如果 index 超出此選單之 items 陣列的邊界。
|
displaying | 事件 |
flash.events.Event
屬性 Event.type =
flash.events.Event.DISPLAYING
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0 |
在顯示選單之前,由此 NativeMenu 物件立即傳送。
您可以偵聽此事件,在選單顯示前更新該選單。選單中的項目也會傳送 displaying
事件。
preparing
事件會取代 displaying
事件,並可提供其他功能。偵聽 preparing
事件或 displaying
事件,但不可同時偵聽這兩個事件。
注意: 在 Mac OS X 上,AIR 2.6 之前的選單和選單項目會在使用者按下對等按鍵時傳送 displaying
事件。(在其他作業系統上,並不會在進行對等按鍵互動時傳送此事件)。而在 AIR 2.6 版本,當使用者按下對等按鍵時,將不再傳送 displaying
事件。改用 preparing
事件。
Event.DISPLAYING
常數會定義 displaying
事件物件的 type
屬性值。
注意:這個事件不會經歷「捕捉階段」,而且不管目標是否在顯示清單上,都會直接傳送至目標。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | 將要顯示的 物件。 |
preparing | 事件 |
flash.events.Event
屬性 Event.type =
flash.events.Event.PREPARING
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.6 |
在按下對等按鍵但尚未顯示選單之前,會由 NativeMenu 物件傳送。
在顯示選單之前或是在使用者按下對等按鍵時,偵聽此事件即可更新選單。在完全評估對等按鍵之前,會傳送 preparing
事件。您可以從 preparing
事件處理常式啟用、停用、新增或移除選單中的項目,這些變更將在處理對等按鍵時生效。例如,如果您移除或停用指定給觸發對等按鍵的選單項目,便會取消事件的序列,而且不會傳送 select
事件。選單中的項目也會傳送 preparing
事件。
preparing
事件會取代 displaying
事件,並可提供其他功能。偵聽 preparing
事件或 displaying
事件,但不可同時偵聽這兩個事件。
Event.PREPARING
常數會定義 preparing
事件物件的 type
屬性值。
注意:這個事件不會經歷「捕捉階段」,而且不管目標是否在顯示清單上,都會直接傳送至目標。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false |
currentTarget | 傳送此事件的物件。 |
target | 傳送此事件的物件。 |
select | 事件 |
flash.events.Event
屬性 Event.type =
flash.events.Event.SELECT
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0 |
在選取了所屬的任何一個選單項目或是所屬子選單後代 (任何一個) 中的某個項目時,由此 NativeMenu 物件傳送。
select
事件會將選單項目「反昇」至其所屬的選單,並從父選單鏈向上到達根選單物件。此事件物件的 target
屬性會參考所選取的 NativeMenuItem 物件,而 currentTarget
屬性則會參考此 NativeMenu 物件。
Event.SELECT
常數會定義 select
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | 已經選取項目的物件。 |
Tue Jun 12 2018, 03:47 PM Z