| 套件 | 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
隱藏繼承公用屬性
顯示繼承公用屬性