动态辅助功能属性(仅限 Windows — Active X) ActiveX Flash Player 6 增加了对 Microsoft Active Accessibility (MSAA) 的支持,这是一种 Windows 屏幕阅读器通讯协议。Flash MX 含“辅助功能”面板,可让作者对某些类型的可访问对象(整个影片、按钮、影片剪辑、动态文本和输入文本)设置与辅助功能相关的属性。
Flash 6 辅助功能的局限性在于,这些属性只能在创作时静态设置。为制作可访问的 Flash 内容,许多作者需要能够从动作脚本动态设置这些属性。
ActiveX Flash Player 6 的这一版本通过向动作脚本运行对象模型添加一种叫作“Accessibility.updateProperties”的方法,解决了动态辅助功能问题。此方法没有任何参数和返回值。调用此方法可使播放器重新检查所有辅助功能属性,更新屏幕阅读器的对象描述,且在必要时向屏幕阅读器发送事件,指示更改已经发生。这些对象模型更新和事件的逻辑与 SWF 帧之间的现有更改逻辑完全一致。
在同时更新多个对象的辅助功能属性时,只需调用一次 Accessibility.updateProperties,实际上,因为性能原因,并为降低将更新发送至屏幕阅读器的频率(更新太频繁可能引起屏幕阅读器失真),多次调用是不可取的做法。
辅助功能属性是使用以下先前未记录的位置来设置的,这些位置实际上是 Flash MX 用来在“辅助功能”面板上指定属性集的位置。
对于适用于整个影片的属性,可创建或修改一个叫作 _accProps 的全局变量。对于只适用于某个特定对象的属性,可创建或修改实例名称._accProps。在此,实例名称是必需的,注意,如果还没有实例名称,则为某对象使用“辅助功能”面板时将自动指定一个实例名称。
在这两种情况下,_accProps 的值都是含以下一个或多个字段的对象:
| 属性 |
类型 |
“辅助功能”面板中的等效选项 |
适用于 |
| .silent |
boolean |
使影片可访问/ 使对象可访问 (反向逻辑) |
整个影片; 按钮; 影片剪辑; 动态文本; 输入文本 |
| .forceSimple |
boolean |
使儿童对象可访问 (反向逻辑) |
整个影片; 影片剪辑 |
| .name |
string |
名称 |
整个影片; 按钮; 影片剪辑; 输入文本 |
| .description |
string |
说明 |
整个影片; 按钮; 影片剪辑; 动态文本; 输入文本 |
| .shortcut |
string |
快捷方式 |
按钮; 影片剪辑; 输入文本 |
以上所有字段皆为可选项。缺少 boolean 字段时,相当于值为假,缺少字符串字段时,相当于字符串为空。已有的字段如果不再需要,可以删除(使用删除运算符)。如果提供的字段不适用于 _accProps 对象所附加的 Stage 对象的类型,则毫无效果。如果所有现有字段都不再需要,则可以删除 _accProps 对象本身。
在“辅助功能”面板中有一个字段的值不能动态更改(Accessibility.updateProperties 将忽略对其所作的任何更改)。这就是只适用于整个影片的自动标签字段。
以下为利用动态辅助功能属性的动作脚本代码的示例。这一虚设的代码属于一个非文本图标按钮组件,该组件可以改变其所显示的图标。
function setIcon( newIconNum, newTextEquivalent )
{
this.iconImage = this.iconImages[ newIconNum ];
if ( newTextEquivalent != undefined )
{
if ( this._accProps == undefined )
this._accProps = new Object();
this._accProps.name = newTextEquivalent;
Accessibility.updateProperties();
}
}
|