Лучшее решение для пользовательских вводов, таких как ввод текста - PullRequest
1 голос
/ 24 февраля 2012

Мне просто интересно, что будет лучшим решением для получения ввода текста от пользователя в PlayN.Я не нашел ничего, что я мог бы использовать для достижения этой цели, я думаю, что лучшим решением будет сделать что-то вроде ввода HTML для написания текста, но это будет не так просто, потому что нам нужно уметь использовать в примеревиртуальная клавиатура от Android (на платформе Android) и обычная клавиатура на бэкэнде HTML.Даже тогда я думаю, что будет очень трудно (или невозможно) вызывать андроид-клавиатуру в игре ...

Я думаю о создании виджета в библиотеке tripleplay UI (потому что я буду его использовать), но этозакончится рендерингом виртуальной клавиатуры на экране для пользовательских вводов .. кнопки от az и т.д ...

Интересно, есть ли лучшее решение для этого, или мне нужно реализовать что-то, как я написал выше (например, tripleplay widget)

1 Ответ

2 голосов
/ 27 февраля 2012

Уже есть виджет Tripleplay для приема текста, который называется Поле .

Однако он очень примитивен и еще не работает на мобильных платформах (он будет работать на устройстве Android с аппаратной клавиатурой). Нам нужно предоставить API в PlayN для отображения виртуальной клавиатуры, но до тех пор у него нет возможности запустить отображение виртуальной клавиатуры.

Однако я не рекомендую использовать это для какого-либо существенного ввода текста. Он не поддерживает (и никогда не будет) вырезать и вставлять, или методы ввода языка, или любые другие чрезвычайно сложные функции, которые пользователи ожидают от ввода текста.

Я бы хотел добавить API в PlayN, например:

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

, которая выдает виртуальную клавиатуру с прикрепленным (собственным) текстовым полем и позволяет пользователю вводить одну строку текста, используя все механизмы поддержки собственного ввода текста платформы. Это позволит им вырезать и вставлять, использовать методы ввода языка и обеспечивать удобство работы с данной платформой.

Если вашей игре требуется более сложный ввод текста (например, интерфейс чата или возможность создавать страницы заметок), вам, вероятно, придется создать отдельный интерфейс для каждой платформы, которую вы хотите поддерживать, с помощью встроенного многострочного редактирования текста. виджеты, а затем "подключить" их в вашу игру PlayN. Это будет сложнее, чем можно описать в простом ответе SO, поэтому вам придется провести некоторое исследование и узнать, как PlayN управляет отображением на каждом из серверных компонентов, которые вы хотите поддерживать.

...