| 包 | flash.accessibility |
| 类 | public class AccessibilityProperties |
| 继承 | AccessibilityProperties Object |
| 语言版本: | 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 Player 是否正在支持辅助功能的环境中运行,请使用 Capabilities.hasAccessibility 属性。如果修改 AccessibilityProperties 对象,则需要调用 Accessibility.updateProperties() 方法以使更改生效。
另请参见
| 属性 | 定义方 | ||
|---|---|---|---|
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
| description : String 在呈现辅助功能时为该显示对象提供一个说明。 | AccessibilityProperties | ||
| forceSimple : Boolean 如果为 true,则会导致 Flash Player 从辅助演示中排除该显示对象内的子对象。 | AccessibilityProperties | ||
| name : String 在呈现辅助功能时为该显示对象提供一个名称。 | AccessibilityProperties | ||
| noAutoLabeling : Boolean 如果为 true,则禁用 Flash Player 的默认自动标签系统。 | AccessibilityProperties | ||
![]() | prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | |
| shortcut : String 指出与该显示对象关联的快捷键。 | AccessibilityProperties | ||
| silent : Boolean 如果为 true,则在呈现辅助功能时排除该显示对象。 | AccessibilityProperties | ||
| 方法 | 定义方 | ||
|---|---|---|---|
创建一个新的 AccessibilityProperties 对象。 | AccessibilityProperties | ||
![]() |
指示对象是否已经定义了指定的属性。 | Object | |
![]() |
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
![]() |
指示指定的属性是否存在、是否可枚举。 | Object | |
![]() |
设置循环操作动态属性的可用性。 | Object | |
![]() |
返回指定对象的字符串表示形式。 | Object | |
![]() |
返回指定对象的原始值。 | Object | |
| description | 属性 |
public var description:String| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
在呈现辅助功能时为该显示对象提供一个说明。如果要显示有关对象的大量信息,最佳的方法就是选择一个简洁的名称并将大部分内容放在 description 属性中。适用于整个 SWF 文件、容器、按钮和文本。默认值为空字符串。
| 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 混淆。默认值为空字符串。
| 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 类的主要功能如下:
注意:在检查 Accessibility.active 之前应先调用 setTimeout(),以给 Flash Player 提供与屏幕阅读器(如果有)连接所需的 2 秒钟时间。如果未提供足够长的延迟时间,则即使在有屏幕阅读器的情况下,setTimeout 调用也可能会返回 false。
只有在对 Accessibility.active 的调用返回 true 时(只有在 Flash Player 当前连接到活动的屏幕阅读器时才会发生这种情况),以下示例才会处理 Accessibility.updateProperties() 方法。如果在没有活动的屏幕阅读器的情况下调用 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();
}
}
}