包 | 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 有足够的时间来检测屏幕阅读器。
注意:在检查 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(); } } }
Tue Jun 12 2018, 11:04 AM Z