2016-11-03 3 views
0

Я унаследовал некоторые старые Flash-носители на работе. Требования, предъявляемые клиентом, а также ограничение времени, диктуют, что мы не можем использовать ничего выше, чем установленные параметры публикации для Flash Player 9 и ActionScript 2.0.Запретить изменение фокуса с помощью клавиш со стрелками в обработчике событий Flash AS2?

У меня есть компонент, который действует как таймер, и я пытаюсь перемотать его или перемотать вперед 5 секунд, когда нажата клавиша со стрелкой влево или вправо, для обеспечения доступности. Тем не менее, стрелки влево и вправо перемещают фокус клавиатуры на следующий или предыдущий элемент tabbable после срабатывания обработчика.

Как я могу остановить это? С AS3 или JavaScript я мог бы позвонить Event.preventDefault(), который, я уверен, исправлю проблему, но у меня нет такой роскоши в AS2.

ответ

0

То, что я в конечном итоге делает, чтобы решить эту проблему, по крайней мере, на данный момент, должен был установить искать _focusRect свойство бара к false, а затем добавили onKillFocus и onSetFocus обработчики для удаления и добавления фильтра свечения к нему, что выглядело как желтый контур. _focusRect = false достигает того, что мне нужно, потому что он останавливает стрелки от смещения фокуса, но я могу вставлять и выходить из объекта с помощью клавиши Tab. От documentation for MovieClip._focusRect:

Если для свойства _focusrect установлено значение false, навигация по клавиатуре для этого видеоклипа ограничена клавишей Tab. Все остальные клавиши, включая клавиши Enter и стрелки, игнорируются. Чтобы восстановить полную навигацию по клавиатуре, вы должны установить значение _focusrect в значение true.

Только дело в том, что при этом вы должны добавить свои собственные обработчики для взаимодействия, которые, вероятно, считаются само собой разумеющимися, например, нажатие Enter или Space.

Смежные вопросы