패키지flash.accessibility
클래스public final class Accessibility
상속Accessibility Inheritance Object

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

Accessibility 클래스는 화면 판독기와의 통신을 관리합니다. 화면 판독기는 시각 장애가 있는 사용자를 위해 화면 내용을 음성으로 들려 주는 일종의 보조 기술입니다. Accessibility 클래스의 메서드는 정적이므로 사용자가 클래스의 인스턴스를 생성하지 않아도 메서드를 사용할 수 있습니다.

버튼, 무비 클립 또는 텍스트 필드와 같은 특정 객체에 대하여 액세스 가능한 속성을 가져오거나 설정하려면 DisplayObject.accessibilityProperties 속성을 사용합니다. 플레이어가 액세스 가능성 도구를 지원하는 환경에서 실행되고 있는지 확인하려면 Capabilities.hasAccessibility 속성을 사용합니다.

예제 보기

참고 사항

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


Public 속성
 속성다음에 의해 정의됨
  active : Boolean
[정적] [읽기 전용] 화면 판독기가 현재 활성 상태이며 플레이어와 통신 중인지 여부를 나타냅니다.
Accessibility
 Inheritedconstructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
Object
 Inheritedprototype : Object
[정적] 클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다.
Object
Public 메서드
 메서드다음에 의해 정의됨
 Inherited
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.
Object
 Inherited
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.
Object
 Inherited
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.
Object
 Inherited
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.
Object
 Inherited
지정된 객체의 문자열 표현을 반환합니다.
Object
  
[정적] DisplayObject.accessibilityProperties 속성을 사용하여 변경한 액세스 가능성을 적용하도록 Flash Player에 지시합니다.
Accessibility
 Inherited
지정된 객체의 프리미티브 값을 반환합니다.
Object
속성 정보
active속성
active:Boolean  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

화면 판독기가 현재 활성 상태이며 플레이어와 통신 중인지 여부를 나타냅니다. 화면 판독기가 있는 경우 응용 프로그램이 다르게 동작하도록 하려면 이 메서드를 사용합니다.

참고: 문서가 재생되고 있는 Flash® 윈도우가 처음 나타난 후 1~2초 내에 이 메서드를 호출하면 활성화된 액세스 가능성 클라이언트가 있어도 false 값이 반환될 수 있습니다. 이것은 Flash와 액세스 가능성 클라이언트 간의 비동기 통신 메커니즘 때문입니다. 이러한 문제를 해결하려면 문서를 로드한 후 1~2초 정도 경과한 후 이 메서드를 호출합니다.

플레이어가 화면 판독기를 지원하는 환경에서 실행되고 있는지 확인하려면 Capabilities.hasAccessibility 속성을 사용합니다.



구현
    public static function get active():Boolean

참고 사항

메서드 정보
updateProperties()메서드
public static function updateProperties():void

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

DisplayObject.accessibilityProperties 속성을 사용하여 실행된 액세스 가능성의 변경 사항을 적용하도록 Flash Player에 지시합니다. 변경 사항이 적용되도록 하려면 이 메서드를 호출해야 합니다.

여러 객체의 액세스 가능성 속성을 수정하는 경우, Accessibility.updateProperties() 메서드를 한 번만 호출하면 됩니다. 여러 번 호출하면 성능이 떨어지며 화면 판독기가 올바로 작동하지 않을 수도 있습니다.


오류
IllegalOperationError — 이 Flash Player 버전에서는 액세스 가능성이 지원되지 않습니다. flash.system.Capabilities.hasAccessibility 속성이 false이면 Accessibility.updateProperties() 메서드를 호출하지 마십시오.

참고 사항

예제 예제 사용 방법
AccessibilityExample.as

다음 예제에서는 AccessibilityExample, CustomAccessibleButton, CustomSimpleButtonButtonDisplayState 샘플 클래스를 사용하여 대부분의 화면 판독기에서 작동하는 액세스 가능성 호환 메뉴를 만듭니다. 이는 다음 단계로 이루어집니다.
  1. 화면 판독기가 현재 활성화되어 있고 플레이어와 통신하고 있는지 확인하기 위해 Accessibility.active 속성을 추적합니다.
  2. active 속성에서 true가 반환되면 updateProperties() 메서드를 호출하여 예제 내의 버튼에 액세스 가능성 변경 사항을 적용합니다.
  3. 그 다음 flash.utils.setTimeout() 메서드를 호출하여 updateAccessibility() 클로저 메서드를 2초 후에 호출하도록 지정합니다.

참고: Accessibility.active 확인 전에 먼저 setTimeout()을 호출하여, 화면 판독기가 사용 가능한 경우 Flash Player에서 화면 판독기에 연결할 수 있도록 2초의 지연 시간을 줍니다. 충분한 지연 시간을 주지 않으면 화면 판독기가 사용 가능한 경우에도 setTimeout 호출에서 false가 반환될 수 있습니다.

다음 예제에서는 Accessibility.active에 대한 호출이 true를 반환하는 경우에만 Accessibility.updateProperties() 메서드를 처리합니다. 이것은 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();
    }
}