防止在 Flash AS2 事件处理程序中使用箭头键更改焦点?

Prevent focus change with arrow keys in Flash AS2 event handler?

我在工作中继承了一些旧的 Flash 媒体。客户提出的要求以及时间限制决定我们不能使用高于 Flash Player 9 和 ActionScript 2.0 的发布设置的设置。

我有一个用作计时器栏的组件,我试图让它在按下向左或向右箭头键时倒带或快进电影 5 秒,以实现辅助功能。但是,在按键处理程序触发后,左右箭头键会将键盘焦点移动到下一个或上一个可选项卡项。

我怎样才能阻止它?使用 AS3 或 JavaScript 我可以调用 Event.preventDefault(),我很确定这会解决问题,但我在 AS2 中似乎没有那么奢侈。

我最终解决这个问题的方法是将搜索栏的 _focusRect 属性 设置为 false,然后添加 onKillFocusonSetFocus 处理程序来删除并向其添加一个看起来像黄色轮廓的发光过滤器。 _focusRect = false 实现了我所需要的,因为它阻止了箭头键转移焦点,但我仍然可以使用 Tab 键进入和退出对象。来自 documentation for MovieClip._focusRect:

If the _focusrect property is set to false, keyboard navigation for that movie clip is limited to the Tab key. All other keys, including the Enter and arrow keys, are ignored. To restore full keyboard navigation, you must set _focusrect to true.

唯一的问题是,在执行此操作时,您需要确保为可能被视为理所当然的交互添加您自己的处理程序,例如按 Enter 或 Space。