AS3 htmlText показывает теги

У меня есть текстовое поле, созданное с помощью AS3 следующим образом: (theDesc - это параметр, передаваемый через функцию)

var productDescTxt:TextField = new TextField();
productDescTxt.htmlText = theDesc;  
productDescTxt.multiline = true;
productDescTxt.wordWrap = true;
productDescTxt.embedFonts = true;
productDescTxt.setTextFormat(productInfoTF);
productDescTxt.x = 10;
productDescTxt.y = productNameTxt.y+productNameTxt.textHeight+15;
productDescTxt.width = 325;
holder.productsTab.addChild(productDescTxt);

theDesc это HTML-контент с кодировкой символов:

например:

<p><strong>6.1 oz cotton at an affordable price</strong></p>

проблема в том, что textField отображает каждый символ. <p><strong> и т.п.

Есть ли необходимость в дополнительном кодировании на моем конце?

3 ответа

Вам не нужны специальные символы HTML для значения htmlText, экранируйте их, посмотрите этот ответ Unescape (декодируйте) символы HTML из строки во Flex

Похоже, вы получили это с какого-то сервера, не так ли? Вам нужно изменить &lt; с <, &gt; с > вручную. Например, в PHP (если серверная часть вашего приложения написана на PHP), есть html_decode() функция, которая заменит все для вас. Я не знаю подобной функции в AS3.

Но я могу посоветовать вам маленький трюк:

var tempField:TextField = new TextField();
tempField.htmlText = theDesc;  
var productDescTxt:TextField = new TextField();
//...
productDescTx.htmlText = tempField.text;  
holder.productsTab.addChild(productDescTxt);

что будет делать html_decode() для тебя! надеюсь, это поможет!

Просмотреть источник этой страницы и найти эту строку:

<Нечто такое>

это поле ответа выполняет почти то же самое, что и функция htmlText flash textField.
Подробнее о возможностях htmlText во flash: TextField - доступные теги html

Другие вопросы по тегам