2009-05-29 4 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); 

вы можете скачать образец fla здесь http://matrixoft.infunity.com/agents/calvin/flash/tab.rar

нажмите третью кнопку, и она изменит порядок вкладок. Возможно, вам понадобится «Control-> Disable keyboard shortcuts», когда вы ctrl-enter, чтобы протестировать fla

+0

редактировал ответ предоставить образец – Unreality

+2

Ваш образец заставил меня понять, что я не был на самом деле изменения TextArea TabIndex, но TextField внутри текстовой области. Я чувствую себя глупым, но вы сделали добро, спасибо^_^ – Zoe

+0

Мы все сталкиваемся с подобными тупыми ошибками при кодировании flash :) редко бывает ошибок – Unreality

2

Я компилирую с помощью Flash Player 11.4. Переключение свойства tabEnabled в TextField в порядке, но я считаю, что он не работает для 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; 
}