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
Похоже, вы получили это с какого-то сервера, не так ли? Вам нужно изменить <
с <
, >
с >
вручную. Например, в 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