Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Странное поведение текста с символ   и др. в определенных шрифтах. (http://www.flasher.ru/forum/showthread.php?t=103542)

terbooter 07.11.2007 14:03

Странное поведение текста с символ   и др. в определенных шрифтах.
 
Использую сторонний компонент, с распространенными шрифтами работает нормально.
При использовании "экзотических" шрифтов стал выдавать странную картину. Порылся в коде класса, обнаружил, что ТекстФиелд не правильно отображает большое количество хтмл форматированных строчек.

Извиняюсь за большое количество кода.
Вот пример вызывающий косяк ТекстФиелда:
Код:

dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>&nbsp;&nbsp;</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>&nbsp;&nbsp;</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>&nbsp;&nbsp;&nbsp;</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'></FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>[</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>[U</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>[Us</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>[Use</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>r</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>rN</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>rNa</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>rNam</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>e</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>e]</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>e] </FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'></FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>9</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>9:</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>9:5</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>9:58</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'> </FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'></FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>a</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>am</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>am:</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>am: </FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'></FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>w</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'></FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>w</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>wv</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>wvv</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>wvv_</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>w</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>&nbsp;&nbsp;</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>&nbsp;&nbsp;[Use</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>&nbsp;&nbsp;[UserNam</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>&nbsp;&nbsp;[UserName] </FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>&nbsp;&nbsp;[UserName] 9:58</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>&nbsp;&nbsp;[UserName] 9:58 </FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>&nbsp;&nbsp;[UserName] 9:58 am: </FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>&nbsp;&nbsp;[UserName] 9:58 am: w</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>&nbsp;&nbsp;[UserName] 9:58 am: w&nbsp;&nbsp;&nbsp;&nbsp;</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>&nbsp;&nbsp;[UserName] 9:58 am: w&nbsp;&nbsp;&nbsp;&nbsp;wvv_</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>&nbsp;&nbsp;[UserName] 9:58 am: w&nbsp;&nbsp;&nbsp;&nbsp;wvv_w</FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>&nbsp;&nbsp;[UserName] 9:58 am: w&nbsp;&nbsp;&nbsp;&nbsp;wvv_w<br></FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>&nbsp;&nbsp;[UserName] 9:58 am: w&nbsp;&nbsp;&nbsp;&nbsp;wvv_w<br></FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'></FONT>"
dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>&nbsp;&nbsp;[UserName]&nbsp;9:58&nbsp;am:&nbsp;w</FONT>"

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

Такое поведение не совсеми шрифтами, а с некоторыми, такие как Brush Script Std

etc 07.11.2007 14:20

А один раз задать форматирование нельзя было? И один раз задать весь htmlText?

terbooter 07.11.2007 14:41

Вложений: 2
Не я этот код выдаю,
это компонент такое генерит,
странно что если шрифт вердана, то все работает на ура

up

Ок, вот код, где форматирование задаем один раз. Результат, такой же
Код:

dt.htmlText+="<FONT FACE='Brush Script Std' SIZE='12' COLOR='#0'>&nbsp;&nbsp;[UserName] 9:58 am: w&nbsp;&nbsp;&nbsp;&nbsp;</FONT>"
А вот результат:

Infectedcell 07.11.2007 18:24

у меня странный вопрос, а какие шрифты понимает HTML? Разве 'Brush Script Std' туда входит? А вот Вердана, Т.Н.Р., Ариал входят...... поэтому с Верданой у Вас все в норме, а с 'Brush Script Std' полный бардак...
А Вы часом не планируете потом это в сети показывать? А если у меня нет 'Brush Script Std' ???? Как быть?
А так в принципе, работает все без проблем... если конечно там таблицы не лобать =)
Код:

textfield.html=true;
textfield.htmlText = 'сабж'

А если еще *.css прикрутить, то вообще на ура.... ток со стандартными шрифтами, без 'НОУ ХАУ'
и не придется шустрить с фонт фейс, сайз... бла-бла-бла... =))) пользуй styleSheet

iNils 07.11.2007 18:28

Цитата:

Сообщение от Infectedcell
у меня странный вопрос, а какие шрифты понимает HTML? Разве 'Brush Script Std' туда входит? А вот Вердана, Т.Н.Р., Ариал входят...... поэтому с Верданой у Вас все в норме, а с 'Brush Script Std' полный бардак...
А Вы часом не планируете потом это в сети показывать? А если у меня нет 'Brush Script Std' ???? Как быть?

Если шрифт встроен в ролик, то без проблем.

terbooter 08.11.2007 07:06

я хочу сделать смену шрифта в чате, шрифт выбирается только
из установленных в системе пользователя
Код:

TextField.getFontList()
To Infectedcell, а мне вот тоже интересно, что значит фраза "HTML понимает шрифты" ? HTML сам по себе ничего не понимает, понимает HTML-интерпритатор (например, веб-браузер). И что значит "шрифт встроен в HTML" ?

UP

Локализация проблемы. Странное поведение текстового поля наблюдается при наличии в строке
Код:

&nbsp;
Или добавлении неразрывного пробела через юникод символа "\u00A0"

UP2 Еще одна проблема, параллельная .
Делаю динамическое текстовое поле и вывожу туда хтмл текст.
Все работает. Меняю шрифт, все работает. Начинаю играться с настройками embded fonts.
Добавляю только цифры - отображает только цифры, добавляю прописные буквы - отображает только прописные буквы.
(!!!) Добавляю все символы - отображает все символы, кроме хтмл форматированого текста.
Делаю Dont Embed - весь текст отображается правильно.

Chas 08.11.2007 19:19

для html форматированного текста нужно указывать шрифт текста обязательно листом стилей или <font...>text here</font>"; и в embded fonts не забыть добавить bold и italic варианты символов, если вы их используете.

terbooter 09.11.2007 07:02

Цитата:

Сообщение от Chas
для html форматированного текста нужно указывать шрифт текста обязательно листом стилей или <font...>text here</font>"; и в embded fonts не забыть добавить bold и italic варианты символов, если вы их используете.

Вроде утро, голова свежая. А все равно ничего не понимаю.
В предыдущих постах тэг <FONT> не заметить никак нельзя!
Ембдит не ембдит это вопрос не второй и даже не третий - главный вопрос это то безобразие на картинках

Товарищи, скажите, вы видите такой же эффект?
Или я тут в одного напрасно устанавливаю связь с космосом
-)

iNils 09.11.2007 10:04

Где видим?

terbooter 09.11.2007 10:16

Вложений: 1
Картинки в третьем посте.
Такие веселые картинки можно получить еще более простым способом
Код:

f = new TextFormat();
f.font = 'Adobe Caslon Pro';
f.size = "28";
dt.text = "fgjfghjfgjfgjh\u00e7 з";
dt.setTextFormat(f);

Текстовое поле сделать селектабельным.


Вот шрифт (По-моему он с Adobe продуктами поколения CS3 попал ко мне):


Часовой пояс GMT +4, время: 05:18.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.