Форум 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 попал ко мне):

iNils 09.11.2007 10:30

Если внедрять шрифты в ролик, то у меня все нормально, то есть вторая проблему у меня отсутствует.

terbooter 09.11.2007 10:41

А если убрать неразрывный пробел и поставить \u00e7 (или другой отфонарный символ).

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

iNils 09.11.2007 11:28

Хм, система подставляет другой шрифт, по умолчанию у меня Arial, если отключить Arial, то подставляет MS Sans Serif.
Что-то подобное уже было недавно. Надо поискать.

terbooter 09.11.2007 12:45

Цитата:

Flash documents can use Type 1 PostScript fonts, TrueType, and bitmap fonts (Macintosh only).
И действительно, все шрифты которые глючат OTF формата.
Отсюда вытекает второй вопрос, как узнать формат шрифта из флэшки

etc 09.11.2007 12:49

Никак.

iNils 09.11.2007 12:57

Цитата:

Сообщение от terbooter
И действительно, все шрифты которые глючат OTF формата

Не верный вывод, у меня например глючит Akzidenz Grotesk BE, а он PostScript.

terbooter 09.11.2007 14:19

Единственную зависимость которую мне удалось установить, что если у шрифта расширение .TTF то он точно не глючит, а если .OTF, то может глючить, а может нет

etc 09.11.2007 17:36

У вас просто шрифтов мало.


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

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