RTL вход во Flash с AS 2 - PullRequest
       3

RTL вход во Flash с AS 2

1 голос
/ 23 февраля 2012

Я новичок во Flash и пытаюсь реализовать простую контактную форму во Flash.

Теперь, когда пользователь вводит текст на иврите, он портит порядок, все буквы перевернуты (это означает«this» превращается в «siht») Теперь я не могу переместить свой код на AS3, потому что он реализован в более крупном проекте, который написан на AS2.происходят, слова неправильно упорядочены, каждое слово написано перед последним словом, а не после, есть идеи, как это исправить?Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 13 ноября 2012

Мне просто нужно было решить аналогичную задачу (старый проект не мог переключиться на новые компоненты). Эта проблема доставит вам кучу неприятностей. Я настоятельно рекомендую использовать текстовые поля TLF и AS3, который поддерживает RTL.

Нет? Давайте начнем, тогда:

  • курсор нужно ставить слева только в том случае, если символ действительно находился в диапазоне Юникода RTL (легко гуглируется). Обычные символы должны продолжать плавать LTR. И, да, это можно смешивать.
  • delete / backspace: должен работать в обратном порядке вокруг слов RTL. В конце концов, символ, который вы только что набрали, всегда должен быть удален с помощью возврата. это означает, что вы должны перейти на другую сторону слова LTR, если встретите его.
  • enter: новая строка начинается слева. при разрыве строк RTL левая часть должна переходить на следующую строку, правая часть остается. это должно быть отражено для удаления / возврата при удалении разрывов.
  • Клавиши курсора L / R. также полностью изменено. За исключением слов LTR.
  • знаки препинания и пробелы. они считаются как RTL после слова rtl, LTR после слова LTR.
  • даже после всего этого текст будет сохранен внутри в неправильном порядке. RTL - автореверс. Это означает, что вы должны сканировать каждый текст, который вставляется. о, и событие COPY не работает для текстовых полей. поэтому копирование из фальшивого текстового поля в формате RTL настоятельно не рекомендуется. все, что вы сохраняете или храните в базе данных, вы должны изменить. но только часть RTL и ее пунктуации.
0 голосов
/ 23 февраля 2012

Вы должны перехватить события onChanged текстового поля и вручную поместить курсор слева от вновь введенного текста:

myInputField.onChanged = function(field:TextField) { 
    var sel:Number = Selection.getBeginIndex();
    Selection.setSelection (sel-1, sel-1);
};
...