|
|
|||||
Как создать Input-поле для иврита?
Всем привет!
В одном проекте поднадобилось сделать поле ввода. Сделал его по старинке, но поскольку приложение для израильского заказчика, то возникла проблема, что символы иврита вводятся в обратном порядке. Погуглил эту проблему, в частности на этом форуме и выяснил, что ввод справа налево поддерживается только в классах flash.text.engine.* . В принципе, использовать эти классы не проблема - посмотрел хелп, вроде все достаточно понятно. Но не увидел, в классах пакета flash.text.engine ни одного упоминания о type == input. Поскольку, раньше ни с этим пакетом, ни с ивритом не сталкивался, то немного в растерянности, куда копать дальше? Если у кого-то есть пример input-поля для иврита, буду премного благодарен. |
|
|||||
Во FlashIDE класс TLFTextField.
Во Flex framework все компоненты spark поддерживают TLF.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
Спасибо, уже что-то начинает получаться.
Дальше, такие проблемы: 1. Но печатаемые буквы все так же появляются справа, единственное отличие, что курсор мерцает не в конце строки, а в начале. Я так понимаю, символы должны появляться слева? Или для кириллицы FP будет автоматически печатать по методу LTR? 2. При использовании TLFTextField, что нужно впихнуть в stage.focus, чтобы можно было сразу печатать? Я посмотрел, что у TLFTextField достаточно сложная внутрення структура и прямой ссылки непосредственно на TextField нету. |
|
|||||
1. У TLFTextField есть собственный direction.
2. Ниразу им не пользовался. Цитата:
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
1. При использовании TextLayoutFormat, direction у TLFTextField перезаписывается.
2. Про TextField само собой, я имел ввиду какой-либо аналог, который можно передать в stage.focus. У меня получилось добраться только до TextLine, наследника DisplayObjectContainer. Ок, спасибо за помощь - подождем, может быть, кто-то еще что либо подскажет. p.s. Сегодня закончил с этим проектом. Остановился на таком варианте (если кому понадобится): private function textDownHandler(e:MouseEvent):void { _textLabel = new TLFTextField(); _textLabel.autoSize = TextFieldAutoSize.LEFT; _textLabel.multiline = true; _textLabel.type = TextFieldType.INPUT; _textLabel.selectable = true; _textLabel.border = true; _textLabel.embedFonts = true; _textLabel.setSelection(0, 0); _textLabel.addEventListener(FocusEvent.FOCUS_OUT, textUpHandler); var _format:TextLayoutFormat = new TextLayoutFormat(); _format.fontLookup = FontLookup.EMBEDDED_CFF; _format.direction = Direction.RTL; var _flow:TextFlow = _textLabel.textFlow; _flow.hostFormat = _format; _flow.flowComposer.updateAllControllers(); addChild(_textLabel); _flow.interactionManager.setFocus(); } private function textUpHandler(e:FocusEvent):void { _textLabel.removeEventListener(FocusEvent.FOCUS_OUT, textUpHandler); if (_textLabel.text) { _textLabel.type = TextFieldType.DYNAMIC; _textLabel.selectable = false; _textLabel.border = false; } else { removeChild(_textLabel); } _textLabel = null; } Последний раз редактировалось olexandr; 20.03.2012 в 00:22. |
Часовой пояс GMT +4, время: 05:41. |
|
« Предыдущая тема | Следующая тема » |
Теги |
fp10 , hebrew , input |
Опции темы | |
Опции просмотра | |
|
|