如果函数太多,那么每个“removeEventListener”都很难, 有没有办法暂时禁用所有密钥?
谢谢。
答案 0 :(得分:0)
"有没有办法暂时禁用所有密钥?"
你能不能只使用.removeEventListener(KeyboardEvent.KEY_DOWN...
?
您的Stage
或某些MovieClip
正在收听关键新闻事件,对吗?例如:
stage.addEventListener(KeyboardEvent.KEY_DOWN, handle_KeyPress);
您的handle_KeyPress
功能,其中处理所有按键,如下所示:
function handle_KeyPress ( evt:KeyboardEvent ) : void
{
//# RIGHT ARROW or numpad 6 (arrow)
if ( evt.keyCode == 39 || evt.keyCode == 54 || evt.keyCode == 102)
{
//do something if Right arrow
}
//# SPACE BAR
if ( evt.keyCode == 32)
{
//do something if Space bar
}
}
PS:
用"太多函数" 显示一个代码示例(例如:给出一个小例子,它们如何展开它)。如果您的代码目前不灵活,您可能需要重新思考/重新构建代码。
答案 1 :(得分:0)
如果您的目标只是暂时停止"事件处理程序,你可以抛出一个简单的布尔值:
var eventsHandled:Boolean = true;
在事件处理函数中,您可以将其用作条件:
function buttonClicked(evt:KeyboardEvent):void{
if(eventsHandled){
//do stuff
这只是一个简单的绷带。 VC.One的答案可能暗示你的实际问题,在某些时候你不得不面对它。