2009-05-29 149 views
6

我試圖將屏幕閱讀器的一些輔助功能添加到Flash應用程序中,並針對某個粘滯點運行。通過元素製表的順序由這些元素的tabIndex屬性設置。難點在於,從這些構建的選項卡列表似乎是永久性的,但應用程序的內容是動態的(從xml構建,包含彈出窗口和對話框)。有沒有辦法刷新/重建選項卡列表?我願意竭盡全力,嘗試一些瘋狂的黑客來完成這項工作,所以任何建議都很好。Flash Tab訂單更改

回答

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); 

可以將值的元素在此處下載示例標記 http://matrixoft.infunity.com/agents/calvin/flash/tab.rar

單擊第三個按鈕,它將更改Tab鍵順序。 當您按Ctrl輸入以測試fla時,您可能需要「控制 - >禁用鍵盤快捷鍵」

+0

編輯答案提供樣本 – Unreality 2009-05-29 05:05:37

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; 
}