flash.accessibility
public class AccessibilityProperties
继承AccessibilityProperties Inheritance Object

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

利用 AccessibilityProperties 类可控制 Flash 对象辅助功能(如屏幕阅读器)演示。

您可以将 AccessibilityProperties 对象附加到任何显示对象,但是 Flash Player 只会读取以下某些类型的对象的 AccessibilityProperties 对象:所有 SWF 文件(以 DisplayObject.root 形式表示)、容器对象(DisplayObjectContainer 和子类)、按钮(SimpleButton 和子类)以及文本(TextField 和子类)。

这些对象的 name 属性是要指定的最重要的属性,因为辅助功能向用户提供对象名称以作为基本的导航方法。不要将 AccessibilityProperties.nameDisplayObject.name 混淆;这二者有区别且不相关。AccessibilityProperties.name 属性是通过辅助功能用语音读出的名称,而 DisplayObject.name 本质上是仅向 ActionScript 代码显示的变量名称。

若要确定 Flash Player 是否正在支持辅助功能的环境中运行,请使用 Capabilities.hasAccessibility 属性。如果修改 AccessibilityProperties 对象,则需要调用 Accessibility.updateProperties() 方法以使更改生效。

查看示例

另请参见

flash.accessibility.Accessibility.updateProperties()
flash.display.DisplayObject.accessibilityProperties
flash.display.InteractiveObject.tabIndex
flash.system.Capabilities.hasAccessibility


公共属性
 属性定义方
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  description : String
在呈现辅助功能时为该显示对象提供一个说明。
AccessibilityProperties
  forceSimple : Boolean
如果为 true,则会导致 Flash Player 从辅助演示中排除该显示对象内的子对象。
AccessibilityProperties
  name : String
在呈现辅助功能时为该显示对象提供一个名称。
AccessibilityProperties
  noAutoLabeling : Boolean
如果为 true,则禁用 Flash Player 的默认自动标签系统。
AccessibilityProperties
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
  shortcut : String
指出与该显示对象关联的快捷键。
AccessibilityProperties
  silent : Boolean
如果为 true,则在呈现辅助功能时排除该显示对象。
AccessibilityProperties
公共方法
 方法定义方
  
创建一个新的 AccessibilityProperties 对象。
AccessibilityProperties
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
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 对象。

示例 如何使用示例
AccessibilityPropertiesExample.as

下例使用 AccessibilityExampleCustomAccessibleButtonCustomSimpleButtonButtonDisplayState 类创建与辅助功能兼容且可用于大多数屏幕阅读器的菜单。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();
    }
}
}