Это немного утомительно, но вы можете использовать htmlText
-объект TextField, даже если вы не форматируете свой текст с помощью StyleSheets: Flash преобразует всю вашу информацию о форматировании в текст HTML внутри, поэтому даже если вы установили textField.text
, вы все равно можете получить отформатированный текст xml для работы:
textField.text = "A test.";
trace (textField.htmlText);
на самом деле вернет:
<P ALIGN="LEFT"><FONT FACE="Times Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">A test.</FONT></P>
Текст всегда будет отображаться в тегах <FONT>
, отражая изменения, которые вы внесли с помощью setTextFormat()
. Таким образом, вы можете перебрать XML, содержащийся в этой строке, и удалить только последний символ в последнем TextNode:
private function removeLastCharacter (textField:TextField) : void {
var xml:XML = new XML (textField.htmlText);
for ( var i : int = xml.children().length()-1; i >= 0; i-- ){
var node:XML = xml.children()[i];
if ( node.name() == "FONT") {
var tx:String = node.text()[0].toString();
node.setChildren (tx.substr (0, tx.length-1));
break;
}
}
textField.htmlText = xml;
trace (textField.text); // In the above example, output will be: "A test";
}