1

我正在使用 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”和其他几种我看到的在i​​OS中发布的据说可以工作的方法,但它们没有工作。 . 还有其他函数使用相同的 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 处于活动状态并设置焦点,并且每次都有效。

我不确定按下“完成”与按下舞台上的对象有什么区别,但它拒绝使用完成按钮设置焦点。有人有任何想法或以前做过这项工作吗?

4

2 回答 2

1

我成功地将焦点分配到StageTextiOS 中,如下所示:

stageText.assignFocus();

StageText提供了许多优势,TextField因为它显示了本机文本输入。我知道的唯一缺点是您不能使用自定义字体。

这是文档教程

我没有尝试过“完成”键,但我用“Enter”键完成了你想要实现的目标,并且成功了。另请注意,在 iOS 中,“完成”键用于隐藏键盘,这可能就是您遇到这些问题的原因。

于 2013-10-03T16:19:50.867 回答
0

使用组件 FPTextField 您可以收听单击 DONE 的事件。在这个视频中,比较了 StageText 和 FPTextField:http ://www.youtube.com/watch?v=BKYaoLtEmCU

使用 ane 库 FPNativeUI:http ://flashpress.ru/blog/ane/native-ui/?lang=en

于 2015-05-08T16:29:05.183 回答