Главная / Action Script 3
Пакетflash.accessibility
Классpublic class AccessibilityProperties
НаследованиеAccessibilityProperties Inheritance Object
Подклассы UIComponentAccImpl

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Класс AccessibilityProperties позволяет управлять представлением объектов Flash в средствах обеспечения специальных возможностей, например в средствах чтения с экрана.

Можно прикрепить объект 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(), чтобы изменения вступили в силу.

Посмотреть примеры

См. также

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
Версии среды выполнения:  1.0 9

Позволяет назначить экранному объекту описание в файле презентации с расширенным доступом. Если на текущий момент имеется достаточно информации об объекте, то лучше выбрать короткое имя и поместить большую часть содержания в свойство description. Применяется к SWF-файлам целиком, контейнерам, кнопкам и тексту. Значение по умолчанию — пустая строка.

forceSimpleсвойство 
public var forceSimple:Boolean

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

При значении true предписывает проигрывателю Flash Player исключить дочерние объекты этого экранного объекта из файла презентации с расширенным доступом. Значение по умолчанию равно false. Применяется к SWF-файлам целиком и контейнерам.

nameсвойство 
public var name:String

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Позволяет назначить экранному объекту имя в файле презентации с расширенным доступом. Применяется к SWF-файлам целиком, контейнерам, кнопкам и тексту. Не путайте с не связанным свойством DisplayObject.name. Значение по умолчанию — пустая строка.

noAutoLabelingсвойство 
public var noAutoLabeling:Boolean

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

При значенииtrue отключает систему автоматических подписей по умолчанию для проигрывателя Flash Player. Автоматические подписи могут вызвать обработку текстовых объектов внутри кнопок как имен кнопок и обработки текстовых объектов около текстового поля как имени текстового поля. Значение по умолчанию равно false. Применяется только к SWF-файлам целиком.

Значение свойства noAutoLabeling игнорируется, пока оно не будет определено перед первой проверкой SWF-файла средством обеспечения расширенного доступа. Если планируется для свойства noAutoLabeling установить значение true, то необходимо в коде это сделать как можно раньше.

shortcutсвойство 
public var shortcut:String

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Указывает на сочетание клавиш, связанное с этим экранным объектом. Задайте данную строку только для элементов управления пользовательского интерфейса, которые ассоциированы с сочетанием клавиш. Применяется к контейнерам, кнопкам и тексту. Значение по умолчанию — пустая строка.

Примечание.Установка данного свойства не привязывает автоматически комбинации клавиш к данному объекту, необходимо это делать самостоятельно, например путем прослушивания события KeyboardEvent.

Синтаксис для данной строки использует длинные имена для управляющих клавиш и знак плюс (+), указывая на комбинацию клавиш. Примеры допустимых строк: Ctrl+F, Ctrl+Shift+Z и так далее.

silentсвойство 
public var silent:Boolean

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

При значении true исключает этот экранный объект из файла презентации с расширенным доступом. Значение по умолчанию равно false. Применяется к SWF-файлам целиком, контейнерам, кнопкам и тексту.

Сведения о конструкторе
AccessibilityProperties()Конструктор
public function AccessibilityProperties()

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Создает новый объект AccessibilityProperties.

Примеры Как пользоваться примерами
AccessibilityPropertiesExample.as

В следующем пример использованы классы AccessibilityExample, CustomAccessibleButton, CustomSimpleButton и ButtonDisplayState для создания меню, совместимого с расширенным доступом. Это меню работает с популярными средствами чтения с экрана. Далее перечисляются основные функциональные возможности класса AccessibilityProperties.

Примечание. Вызывайте методsetTimeout() перед проверкой свойства Accessibility.active, для того чтобы дать проигрывателю Flash Player 2 секунды, необходимые для подключения к средству чтения с экрана (если такие есть). Если не обеспечить достаточную задержку времени, то вызов метода setTimeout может вернуть значение false, даже если имеется средство чтения с экрана.

Следующий пример выполняет метод Accessibility.updateProperties(), только если вызов свойства Accessibility.active возвращает значение true. Это случается, только если проигрыватель 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();
    }
}
}