1

我只是想知道在 PlayN 中接收用户文本输入的最佳解决方案是什么。我没有找到任何可以用来实现这一点的东西,我认为最好的解决方案是渲染 HTML 输入之类的内容来编写文本,但这并不是那么简单,因为我们需要能够在示例中使用来自 android 的虚拟键盘(在 android 平台上)和 HTML 后端的常规键盘。即便如此,我认为在游戏中唤起安卓键盘将非常困难(或不可能)......

我正在考虑在三重播放 UI 库中创建一个小部件(因为我会使用它),但这将以在屏幕上呈现虚拟键盘以供用户输入结束......来自 az 等的按钮......

我想知道有没有更好的解决方案,或者我需要实现我上面写的东西(比如三重播放小部件)?

4

1 回答 1

2

已经有一个 Tripleplay 小部件用于接收名为Field的文本输入。

但是,它非常原始,还不能在移动平台上运行(它可以在带有硬件键盘的 Android 设备上运行)。我们需要在 PlayN 中提供一个 API 来显示虚拟键盘,但在那之前它无法触发虚拟键盘的显示。

但是,我不建议将它用于任何实质性的文本输入。它不(也永远不会)支持剪切和粘贴、语言输入法或用户期望的文本输入的任何其他极其复杂的功能。

我想向 PlayN 添加一个 API,例如:

Keyboard.requestTextInput(String label, Callback<String> callback)

这将弹出带有附加(本机)文本框的虚拟键盘,并允许用户使用平台的本机文本输入支持的所有机制输入单行文本。这将允许他们剪切和粘贴,使用语言输入法,并提供他们在相关平台上感到舒适的体验。

如果您的游戏需要更复杂的文本输入(如聊天界面,或记录笔记的能力),您可能必须为您希望支持的每个平台创建一个单独的界面,使用本地多行文本编辑小部件,然后将它们“连接”到您的 PlayN 游戏中。这将比简单的 SO 答案中描述的更复杂,因此您必须进行一些研究并了解 PlayN 如何管理您希望支持的每个后端的显示。

于 2012-02-27T16:47:46.510 回答