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

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

Класс Accessibility управляет связью со средствами чтения с экрана. Чтение с экрана — это вспомогательная технология для пользователей с ослабленным зрением, предоставляющая аудиоверсию содержимого экрана. Методы класса Accessibility статические, то есть нет необходимости создавать экземпляр класса, чтобы воспользоваться его методами.

Чтобы получить или установить свойства расширенного доступа для определенного объекта, такого как кнопка, видеоролик или текстовое поле, используйте свойство DisplayObject.accessibilityProperties. Для определения, запущен ли проигрыватель Flash Player в окружении, поддерживающем средства расширенного доступа, используйте свойство Capabilities.hasAccessibility.

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

См. также

flash.display.DisplayObject.accessibilityProperties
flash.system.Capabilities.hasAccessibility
Socket


Общедоступные свойства
 СвойствоОпределено
  active : Boolean
[статические] [только для чтения] Показывает, активно ли средство чтения с экрана в данный момент и поддерживает ли проигрыватель связь с ним.
Accessibility
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
Общедоступные методы
 МетодОпределено
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
  
[статические] Предписывает проигрывателю Flash Player применять любые изменения специальных возможностей, внесенные с помощью свойства DisplayObject.accessibilityProperties.
Accessibility
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Сведения о свойстве
activeсвойство
active:Boolean  [только для чтения]

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

Показывает, активно ли средство чтения с экрана в данный момент и поддерживает ли проигрыватель связь с ним. Используйте данный метод, если в присутствии средства чтения с экрана требуется другое поведение приложения.

Примечание. Если вызвать данный метод в течение 1 или 2 секунд после первого отображения окна приложения Flash®, в котором воспроизводится документ, то можно получить значение false, даже если запущен клиент расширенного доступа. Это происходит из-за асинхронного механизма связи между Flash и клиентами расширенного доступа. Можно обойти данное ограничение, обеспечивая задержку в 1 или 2 секунды перед вызовом метода после загрузки документа.

Для определения, запущен ли проигрыватель в окружении, поддерживающим средства чтения с экрана, используйте свойство Capabilities.hasAccessibility.



Реализация
    public static function get active():Boolean

См. также

Сведения о методе
updateProperties()метод
public static function updateProperties():void

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

Предписывает проигрывателю Flash Player применять любые изменения расширенного доступа, внесенные с помощью свойства DisplayObject.accessibilityProperties. Необходимо вызвать данный метод, чтобы изменения вступили в силу.

Если выполняется модификация свойств расширенного доступа для нескольких объектов, то необходим только один вызов метода Accessibility.updateProperties(), так как несколько вызовов может привести к уменьшению производительности и некорректной работе средства чтения с экрана.


Выдает
IllegalOperationError — Обеспечение расширенного доступа не поддерживаются в этой версии проигрывателя Flash Player. Не вызывайте метод Accessibility.updateProperties(), если для свойства flash.system.Capabilities.hasAccessibility установлено значение false.

См. также

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

В следующем пример использованы простые классы AccessibilityExample, CustomAccessibleButton, CustomSimpleButton и ButtonDisplayState для создания меню, совместимого с обеспечением расширенного доступа. Это меню работает с большинством средств чтения с экрана. Этот код выполняет следующие задачи.
  1. Он отслеживает свойство Accessibility.active для определения, активно ли средство чтения с экрана и взаимодействует ли с ним проигрыватель.
  2. Если свойство active возвращает значение true, то данный пример вызывает метод updateProperties() для применения выполненных изменений свойств расширенного доступа для кнопок примера.
  3. Пример вызывает метод flash.utils.setTimeout(), указывая, что метод закрытия updateAccessibility() должен вызываться через 2 секунды.

Примечание. Вызывайте метод 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 AccessibilityExample 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 AccessibilityExample() {
            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 label:TextField;
    private var description:String;
    private var _name:String;
        
    public function CustomAccessibleButton(_width:uint = 0, _height:uint = 0) {
        _width = (_width == 0) ? AccessibilityExample.BUTTON_WIDTH : _width;
        _height = (_height == 0) ? AccessibilityExample.BUTTON_HEIGHT : _height;
        
        button = buildButton(_width, _height);
        label = buildLabel(_width, _height);
            
        addEventListener(Event.ADDED, addedHandler);
    }
        
    private function addedHandler(event:Event):void {
        trace("addedHandler: " + this._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 {
        label.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();
    }
}