Форматирование текста с помощью HTML во флеш,что ни говори – гораздо удобнее, чем форматирование с TextFormat, практически в любой ситуации.
Если Вас сильно огорчает сильно урезанный набор тегов, который HTML парсер флеша понимает – читайте дальше.
Итак, что мы имеем в распоряжении:
P, B, I, U, A, BR, LI, I, IMG, SPAN, TEXTFORMAT, FONT.
Как видим – ни хедеров, ни STRONG, который рекомендуется вместо B. Заставить флеш-хтмл-парсер понимать h1, h2…. strong, em не прибегая к хакам – елементарно.
У нас же есть законный TextField.StyleSheet. А с помощью css можно форматировать любой XML документ. Грамотный HTML – это тот же XML, поэтому нам достаточно описать в каком виде мы хотим видеть наши заголовки, описать strong, em – и все что нам нужно в таблице стилей.
Маленькая странность – любой неподдерживаемый тег, описанный в таблице стилей – разрывает строку. В случае заголовоков это даже полезно, а вот strong, разрывающий пасть строке – это экзотика К счастью флеш поддерживает свойство display. Так что display: inline – поставит все на свои места.
Дружите с цсс+хтмл. Великий поклон разработчикам за то, что они избавили меня лично от необходимости повсеместно пользоваться текстФорматом. Даже за такой куцый парсер хтмл.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | // стиль var style_string:String = "h1 {font-size: 20; font-weight: bold} "; style_string += "strong {font-weight: bold; display: inline;}"; var style_css:TextField.StyleSheet = new TextField.StyleSheet(); style_css.parseCSS(style_string); // текст var html_text:String = " </code> <h1>Нeader</h1> "; html_text +="<strong> Very strong line </strong>"; html_text +="usual text"; // текстовое поле var tf:TextField = this.createTextField("tf",0,10,10,400,200); tf.multiline = true; tf.wordWrap = true; tf.border = true; tf.html = true; tf.condenseWhite = true; tf.styleSheet = style_css; tf.htmlText = html_text; |
Ну, а если требуется что-то более продвинутое – посмотрите на компонент HTMLRenderer Андрея Горбатова: http://gorbatov.blogspot.com/…/htmlrenderer