Просмотр полной версии : При вставке как htmlText неразрывный пробел преобразуется в обычный - как победить?
mikhailk
10.02.2014, 12:15
Столкнулся вот с таким поведением. Если вставить в текстовое поле как htmlText строку с кодом неразрывного пробела, то он превращается в итоге в пробел обычный. Т.е., остальные сущности остаются в том же виде, а код пробела улетает. По определенным причинам мне нужно, чтобы он остался. Какие идеи?
var str:String = '<br />';
trace(str);
tf.htmlText = str;
trace(tf.htmlText);
<br />
<TEXTFORMAT LEADING="4"><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="16" COLOR="#FFFFFF" LETTERSPACING="0" KERNING="0"><br /></FONT></P></TEXTFORMAT>
а если заменить на U+00A0
mikhailk
10.02.2014, 13:02
Да, это помогло. Он тоже в итоге выглядит как пробел (в хтмл-коде), но по крайней мере он не сжимается.
Добавлено через 23 минуты
Увы, помогло не везде...
не поддерживается в TextField
Flash Player и AIR поддерживают следующие HTML-сущности (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/text/TextField.html#htmlText):
Сущность Описание
< < (знак меньше)
> > (знак больше)
& & (ampersand)
" " (двойные кавычки)
' ' (апостроф, одинарная кавычка)
mikhailk
10.02.2014, 14:34
не поддерживается в TextField
Это в доках я видел.
В принципе, в одном месте вариант с юникодным пробелом U+00A0 у меня прокатил. Но в другом месте (другой шрифт) пробелы все равно сжались.
Т.е., я не бьюсь именно за в коде. Мне нужен железобетонный пробел.
Шрифт это только картинка. Может, дело в наличии самого глифа с этим кодом. Может, нет его в шрифте, а может, не внедрили если шрифт embed?
Мне нужен железобетонный пробел.
Так вам нужен пробел (http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B1%D0%B5%D0%BB) фиксированной длины (em space / en space) или неразрывный?
mikhailk
10.02.2014, 22:10
По факту мне нужно вставить в текст несколько пробелов, которые бы не сжались. Т.е., да, фиксированной длины. Но при этом они должны образовывать неразрывную конструкцию, чтобы если они все не помещаются в текущей строке, то все вместе улетели бы на следующую.
mikhailk через CDATA и не надо никаких спец символов выдумывать. работают все и пробелы и забелы, и слешЭры...
mikhailk
10.02.2014, 22:28
через CDATA и не надо никаких спец символов выдумывать
Что-то у меня не работает...
var str:String = 'bukv<![CDATA[ ]]>a!';
trace(str);
tf.htmlText = str;
trace(tf.htmlText);
bukv<![CDATA[ ]]>a!
<TEXTFORMAT LEADING="2"><P ALIGN="CENTER"><FONT FACE="Calibri" SIZE="20" COLOR="#000000" LETTERSPACING="0" KERNING="0">bukva!</FONT></P></TEXTFORMAT>
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.