Я пытаюсь добавить некоторую доступность для читателей экрана во Flash-приложение, и я бегу против липкой точки. Порядок для табуляции через элементы задается свойством tabIndex этих элементов. Трудность заключается в том, что список вкладок, построенный из них, кажется постоянным, но содержимое приложения является динамическим (построено из xml, содержит всплывающие окна и диалоговые окна). Есть ли способ обновить/перестроить список вкладок? Я готов пойти на крайние расстояния и попробовать сумасшедшие хаки, чтобы сделать эту работу, поэтому любые предложения хороши.Flash Tab Изменения заказа
6
A
ответ
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
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;
}
редактировал ответ предоставить образец – Unreality
Ваш образец заставил меня понять, что я не был на самом деле изменения TextArea TabIndex, но TextField внутри текстовой области. Я чувствую себя глупым, но вы сделали добро, спасибо^_^ – Zoe
Мы все сталкиваемся с подобными тупыми ошибками при кодировании flash :) редко бывает ошибок – Unreality