套件 | flash.accessibility |
類別 | public class AccessibilityProperties |
繼承 | AccessibilityProperties Object |
子類別 | UIComponentAccImpl, UIComponentAccProps |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
您可以將 AccessibilityProperties 物件附加到任何顯示物件,但是 Flash Player 只會針對特定種類的物件讀取您的 AccessibilityProperties 物件:整個 SWF 檔 (以 DisplayObject.root
來表示)、容器物件 (DisplayObjectContainer
與子類別)、按鈕 (SimpleButton
與子類別),以及文字 (TextField
與子類別)。
這些物件的 name
屬性是必須指定的重要屬性,因為輔助功能工具會提供物件的名稱給使用者,做為基本的瀏覽工具。 請勿將 AccessibilityProperties.name
與 DisplayObject.name
混淆,它們是個別獨立,沒有任何關聯的。 AccessibilityProperties.name
屬性是可由輔助功能工具大聲朗讀的名稱,而 DisplayObject.name
基本上則是只有 ActionScript 程式碼才看得見的變數名稱。
在 Flash Professional 中,AccessibilityProperties
物件的屬性會在編寫階段覆寫「輔助功能」面板中可用的對應設定。
若要判斷 Flash Player 是否正在支援輔助功能工具的環境中執行,請使用 Capabilities.hasAccessibility
屬性。 如果您修改了 AccessibilityProperties 物件,則必須呼叫 Accessibility.updateProperties()
方法才能使變更生效。
相關 API 元素
flash.display.DisplayObject.accessibilityProperties
flash.display.InteractiveObject.tabIndex
flash.system.Capabilities.hasAccessibility
屬性 | 定義自 | ||
---|---|---|---|
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
description : String
為此顯示物件提供用於輔助功能呈現方式的說明。 | AccessibilityProperties | ||
forceSimple : Boolean
如果為 true,會導致 Flash Player 從輔助功能的呈現方式中排除此顯示物件內的子物件。 | AccessibilityProperties | ||
name : String
為此顯示物件提供一個用於輔助功能呈現方式的名稱。 | AccessibilityProperties | ||
noAutoLabeling : Boolean
如果為 true,會停用 Flash Player 預設的自動標籤系統。 | AccessibilityProperties | ||
shortcut : String
表示與此顯示物件相關聯的鍵盤快速鍵。 | AccessibilityProperties | ||
silent : Boolean
如果為 true,則從輔助功能的呈現方式中排除此顯示物件。 | AccessibilityProperties |
方法 | 定義自 | ||
---|---|---|---|
建立新的 AccessibilityProperties 物件。 | AccessibilityProperties | ||
指出物件是否有已定義的指定屬性。 | Object | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
會傳回指定之物件的基本值。 | Object |
description | 屬性 |
public var description:String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
為此顯示物件提供用於輔助功能呈現方式的說明。 如果您有許多關於物件的資訊要呈現,最好選擇簡潔的名稱,然後將大部份的內容放置在 description
屬性中。 這會套用至整個 SWF 檔案、容器、按鈕與文字。 預設值為空字串。
在 Flash Professional 中,此屬性會對應至「輔助功能」面板中的「說明」欄位。
forceSimple | 屬性 |
public var forceSimple:Boolean
執行階段版本: | AIR 1.0, Flash Player 9 |
如果為 true
,會導致 Flash Player 從輔助功能的呈現方式中排除此顯示物件內的子物件。 預設值為 false
。 這會套用至整個 SWF 檔案與容器。
name | 屬性 |
public var name:String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
為此顯示物件提供一個用於輔助功能呈現方式的名稱。 這會套用至整個 SWF 檔案、容器、按鈕與文字。 請勿與 DisplayObject.name
混淆,它們並無關聯。 預設值為空字串。
在 Flash Professional 中,此屬性會對應至「輔助功能」面板中的「名稱」欄位。
noAutoLabeling | 屬性 |
public var noAutoLabeling:Boolean
執行階段版本: | AIR 1.0, Flash Player 9 |
如果為 true
,會停用 Flash Player 預設的自動標籤系統。 自動標籤功能會使按鈕內的文字物件視為按鈕名稱,並讓文字欄位附近的文字物件視為文字欄位名稱。 預設值為 false
。 這只會套用至整個 SWF 檔案。
將會忽略 noAutoLabeling
屬性值,除非您在輔助功能工具第一次檢視您的 SWF 檔之前設定這個屬性。 如果您計劃要將 noAutoLabeling
設為 true
,您應該在程式碼中盡早設定。
shortcut | 屬性 |
public var shortcut:String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
表示與此顯示物件相關聯的鍵盤快速鍵。 僅為已經與快速鍵完成關聯的 UI 控制項提供此字串。 這會套用至容器、按鈕與文字。 預設值為空字串。
注意:指定此屬性並不會自動將指定的按鍵組合指定給此物件,您必須親自完成此指定作業 (例如,藉由偵聽 KeyboardEvent
來完成)。
此字串的語法使用長名稱做為輔助按鍵,並使用加號 (+) 字元來表示按鍵組合。 例如,"Ctrl+F"、"Ctrl+Shift+Z" 等有效字串。
silent | 屬性 |
public var silent:Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
如果為 true
,則從輔助功能的呈現方式中排除此顯示物件。 預設值為 false
。 這會套用至整個 SWF 檔案、容器、按鈕與文字。
AccessibilityProperties | () | 建構函式 |
public function AccessibilityProperties()
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
建立新的 AccessibilityProperties 物件。
AccessibilityExample
、CustomAccessibleButton
、CustomSimpleButton
和 ButtonDisplayState
類別來建立與輔助功能相容的選單,以便與一般螢幕朗讀程式搭配運作。 AccessibilityProperties
類別的主要功能如下所示:
- 呼叫
configureAssets
,以建立自訂按鈕並設定其標籤與說明。 這些是螢幕朗讀程式要傳達給使用者的數值。 - 呼叫
setTimeOut()
以確保在更新這些屬性之前,Flash Player 具有足夠的時間偵測螢幕朗讀程式。
注意: 先呼叫 setTimeout()
再檢查 Accessibility.active
, 讓 Flash Player 有兩秒鐘能用來連接至可用的螢幕朗讀程式。 如果您沒有提供足夠的延遲時間,則 setTimeout
呼叫可能會傳回 false
,就算有可用的螢幕朗讀程式也是一樣。
下列範例只會在呼叫 Accessibility.active
傳回 true
時處理 Accessibility.updateProperties()
方法,這情形只有在 Flash Player 目前正連接至作用中的螢幕朗讀程式時才會發生。 如果 updateProperties
是在沒有作用中的螢幕朗讀程式的情形下被呼叫,則會擲出 IllegalOperationError
例外。
package { import flash.display.Sprite; import flash.accessibility.Accessibility; import flash.utils.setTimeout; public class AccessibilityPropertiesExample extends Sprite { public static const BUTTON_WIDTH:uint = 90; public static const BUTTON_HEIGHT:uint = 20; private var gutter:uint = 5; private var menuLabels:Array = new Array("PROJECTS", "PORTFOLIO", "CONTACT"); private var menuDescriptions:Array = new Array("Learn more about our projects" , "See our portfolio" , "Get in touch with our team"); public function AccessibilityPropertiesExample() { configureAssets(); setTimeout(updateAccessibility, 2000); } private function updateAccessibility():void { trace("Accessibility.active: " + Accessibility.active); if(Accessibility.active) { Accessibility.updateProperties(); } } private function configureAssets():void { var child:CustomAccessibleButton; for(var i:uint; i < menuLabels.length; i++) { child = new CustomAccessibleButton(); child.y = (numChildren * (BUTTON_HEIGHT + gutter)); child.setLabel(menuLabels[i]); child.setDescription(menuDescriptions[i]); addChild(child); } } } import flash.accessibility.AccessibilityProperties; import flash.display.Shape; import flash.display.SimpleButton; import flash.display.Sprite; import flash.events.Event; import flash.text.TextFormat; import flash.text.TextField; class CustomAccessibleButton extends Sprite { private var button:SimpleButton; private var label1:TextField; private var description:String; private var _name:String; public function CustomAccessibleButton(_width:uint = 0, _height:uint = 0) { _width = (_width == 0) ? AccessibilityPropertiesExample.BUTTON_WIDTH : _width; _height = (_height == 0) ? AccessibilityPropertiesExample.BUTTON_HEIGHT : _height; button = buildButton(_width, _height); label1 = buildLabel(_width, _height); addEventListener(Event.ADDED, addedHandler); } private function addedHandler(event:Event):void { trace("addedHandler: " + name); var accessProps:AccessibilityProperties = new AccessibilityProperties(); accessProps.name = this._name; accessProps.description = description; accessibilityProperties = accessProps; removeEventListener(Event.ADDED, addedHandler); } private function buildButton(_width:uint, _height:uint):SimpleButton { var child:SimpleButton = new CustomSimpleButton(_width, _height); addChild(child); return child; } private function buildLabel(_width:uint, _height:uint):TextField { var format:TextFormat = new TextFormat(); format.font = "Verdana"; format.size = 11; format.color = 0xFFFFFF; format.align = TextFormatAlign.CENTER; format.bold = true; var child:TextField = new TextField(); child.y = 1; child.width = _width; child.height = _height; child.selectable = false; child.defaultTextFormat = format; child.mouseEnabled = false; addChild(child); return child; } public function setLabel(text:String):void { label1.text = text; this._name = text; } public function setDescription(text:String):void { description = text; } } class CustomSimpleButton extends SimpleButton { private var upColor:uint = 0xFFCC00; private var overColor:uint = 0xCCFF00; private var downColor:uint = 0x00CCFF; public function CustomSimpleButton(_width:uint, _height:uint) { downState = new ButtonDisplayState(downColor, _width, _height); overState = new ButtonDisplayState(overColor, _width, _height); upState = new ButtonDisplayState(upColor, _width, _height); hitTestState = new ButtonDisplayState(upColor, _width, _height); useHandCursor = true; } } class ButtonDisplayState extends Shape { private var bgColor:uint; private var _width:uint; private var _height:uint; public function ButtonDisplayState(bgColor:uint, _width:uint, _height:uint) { this.bgColor = bgColor; this._width = _width; this._height = _height; draw(); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(0, 0, _width, _height); graphics.endFill(); } } }
Tue Jun 12 2018, 03:47 PM Z