Flash Tab顺序更改

时间:2009-05-29 04:22:47

标签: flash actionscript-3 tab-ordering

我正在尝试将屏幕阅读器的一些辅助功能添加到Flash应用程序中,并且正在针对粘滞点运行。 Tabing through元素的顺序由这些元素的tabIndex属性设置。困难在于,从这些构造的选项卡列表似乎是永久性的,但应用程序的内容是动态的(从xml构建,包含弹出窗口和对话框)。有没有办法刷新/重建选项卡列表?我愿意竭尽全力,尝试一些疯狂的黑客来做这项工作,所以任何建议都很好。

2 个答案:

答案 0 :(得分:4)

您可以随时设置编辑元素tabIndex值

喜欢将它们设置为与childIndex相同

for (var i:int=0;i<container.numChildren;++i) {
    container.getChildAt(i).tabIndex = i; //=i or anything you want
}

以下为我工作

iButton1.tabIndex = 1;
iButton2.tabIndex = 2;
iButton3.tabIndex = 3;

iButton1.tabEnabled = true;
iButton2.tabEnabled = true;
iButton3.tabEnabled = true;

function fnClick (pME:MouseEvent):void {
    iButton1.tabIndex = 3;
    iButton2.tabIndex = 2;
    iButton3.tabIndex = 1;
}

iButton3.addEventListener(MouseEvent.CLICK, fnClick);

你可以在这里下载样本fla http://matrixoft.infunity.com/agents/calvin/flash/tab.rar

单击第三个按钮,它将更改Tab键顺序。 当您按住Ctrl键进入测试fla时,您可能需要“控制 - >禁用键盘快捷键”

答案 1 :(得分:2)

我正在使用Flash Player 11.4进行编译切换TextField的tabEnabled属性很好,但我发现它对SimpleButtons不起作用(将tabEnabled设置回true时它们不会再次启用)。为此,我使用这个:

private function setPanelOneTabIndices()
{
    aButton1.tabIndex = 1;
    aButton2.tabIndex = 2;
    aButton3.tabIndex = 3;

    bButton1.tabIndex = 0;
    bButton2.tabIndex = 0;
    bButton3.tabIndex = 0;
}

private function setPanelTwoTabIndices()
{
    aButton1.tabIndex = 0;
    aButton2.tabIndex = 0;
    aButton3.tabIndex = 0;

    bButton1.tabIndex = 1;
    bButton2.tabIndex = 2;
    bButton3.tabIndex = 3;
}