0
我有一个登录功能,在用户输入用户名和密码并点击登录按钮后激活。它完美地工作,但有些人想要更快地做事;而不是在输入密码后点击按钮,他们想要按Enter键登录...但同时,我希望登录按钮也能工作。我如何让一个函数侦听两种不同的事件(一个MouseEvent和一个KeyboardEvent)?AS3让函数侦听不同种类的事件
我试过类似checkLogin(e:MouseEvent || e:KeyboardEvent)
的东西但他们只是抛出我的错误。
这里是我的代码...
function checkLogin(e:MouseEvent):void
{
trace("Submition Going Down!!");
if (username.text == "" || password.text == "")
{
//Lots and lots of checks...
else
{
//if the user and pass fields are valid
logErrorT.text = "\n\nRequesting Login...";
processLogin();
}
}
loginButton.addEventListener(MouseEvent.CLICK, checkLogin);
//All this listens for clicks only.
也许最好将键盘的eventlisterer附加到所有文本字段的父级,现在只有当用户将注意力集中在密码字段上时才会触发输入按键,而当用户专注于用户名textfield。我认为最好是在KEY_UP而不是KEY_DOWN事件上听 –
@StefanvandeVooren实际上,只有在密码字段中按下时才会激活,因为监听器已连接到密码文本字段:'password.addEventListener(KeyboardEvent.KEY_DOWN ,runCheck);'ps:我想了解,使用KEY_UP而不是KEY_DOWN有什么优势?谢谢^^ – MNOPYZ
对不起,我认为用提交表单提交的正常HTLM表单是在回车键上提交的,但是您的键是正确的。因此KEY_UP没有优势。因为在你的问题你有“如果(username.text ==”“|| password.text ==”“)”我假设你有2个输入字段。我认为当输入键仅在用户将注意力集中在密码输入字段而不是用户名字段上时才起作用。 Ť –