提问人:Ulo Greer 提问时间:10/13/2023 最后编辑:Ulo Greer 更新时间:10/13/2023 访问量:28
as3 想要 removeEventListener KeyboardEvent 以防止额外的文本输入并仅允许 1 个键盘事件
as3 want to removeEventListener KeyboardEvent to prevent additional text entry and allow only 1 keyboard event
问:
我正在构建一个简单的动画,我想使用任何按键前进,直到时间线中的某个帧,我想禁用任何随机按键并仅启用 Enter 键前进到下一帧。
我不擅长 AS3,在时间线内删除 EventListener 似乎对我不起作用(因为我显然做错了)。
这是我使用任何键(kb Left 和 Up 除外)前进的代码
stage.addEventListener(KeyboardEvent.KEY_DOWN, pressAnyKeyAdvanceButLeftGoBackward1);
stage.addEventListener(KeyboardEvent.KEY_UP, resetKeyListener);
function pressAnyKeyAdvanceButLeftGoBackward1(event:KeyboardEvent):void
{
stage.removeEventListener(KeyboardEvent.KEY_DOWN, pressAnyKeyAdvanceButLeftGoBackward1);
switch (event.keyCode)
{
case Keyboard.LEFT :
prevFrame();
break;
case Keyboard.UP :
gotoAndStop(1);
break;
default :
nextFrame();
break;
}
}
function resetKeyListener(event:KeyboardEvent):void
{
stage.addEventListener(KeyboardEvent.KEY_DOWN, pressAnyKeyAdvanceButLeftGoBackward1);
}
然后我想删除(或禁用)它并将其放在它的位置
stage.removeEventListener(KeyboardEvent.KEY_DOWN, pressAnyKeyAdvanceButLeftGoBackward1);
stage.addEventListener(KeyboardEvent.KEY_DOWN, enterkey1);
function enterkey1(event:KeyboardEvent):void {
if (event.keyCode==13) {
gotoAndStop(26);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, enterkey1);
}
}
这似乎并没有删除 pressanykey keyboard事件,因为它仍然会随着随机按键而前进。任何指导将不胜感激。
答: 暂无答案
评论
currentFrame