我正在使用 Flash Pro cs6、AS3、Air3.8.. 我正在使用文本字段进行输入。我正在努力做到这一点,所以当用户按下“完成”时,它会转移到下一个字段。我在所有论坛上都发现了相互矛盾的信息,包括这个。我进行了搜索,但从未找到修复程序。我肯定收到了这些事件,我尝试添加一个标识键码的行,这已确认它正在接收键码 13。实际上,我将键码放入了我想要的字段中重点转移到成功.. 它只是拒绝把重点放在那个领域..
我正在使用的代码在文档中说明它在 iOS 中不起作用..但它确实可以在同一脚本页面以及另外两个脚本页面上进一步工作......我有:
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyhandler);
function keyhandler(event:KeyboardEvent){
if(event.charCode == 13)
{
stage.removeEventListener(KeyboardEvent.KEY_DOWN,keyhandler);
stage.focus = null;
stage.focus = nextTextField;
}
}
我先尝试将侦听器添加到文本字段,然后将其更改为舞台,但均无效。我尝试了“requestsSoftKeyboard”和其他几种我看到的在iOS中发布的据说可以工作的方法,但它们没有工作。 . 还有其他函数使用相同的 stage.focus 为 null,然后将 stage.focus 用于 MyTextField 并且它们可以工作,但是它们是通过按下舞台上的按钮而不是软键盘上的按钮来启动的。那里的代码只是一个标准的 if 语句:
if (TextField == "")
{
stage.focus=null;
stage.focus=TextField;
}else if (NextTextField == "")
{
stage.focus = null;
stage.focus = NextTextField;
}else if (TextFieldAfterThat == "")
{
stage.focus = null;
stage.focus = TextFieldAfterThat;
}
这将继续通过所有字段,并且总是在软键盘打开、光标闪烁并准备好输入的情况下转到右侧……每次。我知道听众是从软键盘“完成”接收的,因为大写单词的功能有效,并且当我添加代码以确认键码时它有效。我还发现使用“charcode”和“keycode”访问该值。我不知道有什么区别,但两者都返回 13 并且都不适合我。还有另一个地方我使用相同的代码来制作用户按下单选按钮后,TextField 处于活动状态并设置焦点,并且每次都有效。
我不确定按下“完成”与按下舞台上的对象有什么区别,但它拒绝使用完成按钮设置焦点。有人有任何想法或以前做过这项工作吗?