package {
import flash.display.Sprite;
import flash.text.TextField;
public class test extends Sprite
{
private var _textFiled:TextField;
public function test()
{
_textFiled = new TextField();
_textFiled.text = ". 2011年8月15日晚,据传<a href='http://www.google.com.hk'>Google</a> 将以 <font size = '12'>40 </font> 美元现金每股,总价 125 亿美元,收购摩托罗拉移动";
_textFiled.width = 300;
_textFiled.wordWrap = true;
_textFiled.multiline = true;
var st:String = "";
for (var i:int = 0; i < _textFiled.numLines; i++) {
var s:String = _textFiled.getLineText(i) + "\n ";
st += s;
}
_textFiled = new TextField();
_textFiled.width = 300;
_textFiled.wordWrap = true;
_textFiled.multiline = true;
_textFiled.htmlText = st;
addChild(_textFiled);
}
}
}
现在我有这样的要求,我想用textfiled现实一个文本,文本中包含HTML代码,我觉得符合TAB之后,我知道textfiled中的一个getlineText方法,然后再回来添加一个“\ t”
var strText:string = "";
for(var i:int =9;i<textfile.numLine;i++) {
var str:String = textfiled.getlineText(i) + "\t";
strText += str;
}
textfile.htmlText = strText ;
但是这只能得到文字,HTML代码过滤,我来自中国,第一次在这里提问,谢谢大家。
答案 0 :(得分:0)
标签不会以html显示。如果有多个空格,请根据需要插入尽可能多的
。如果在行的中间需要制表符,则需要计算实际需要的空格数。在这种情况下,使用flash时,创建多个TextField可能会更容易,每列一个。
答案 1 :(得分:0)
我不确定这是否是您要求的,但如果您不想丢失HTML格式,则需要使用_textFiled.htmlText
获取文本。然后,如果你想逐行阅读它,那是非常棘手的,因为<p>
和<br>
都会创建新行。根据您的输入,您可以只按<br>
标签分割字符串:
var lines:Array = _textFiled.htmlText.split("<br>");
for(var i:int =9;i<lines.length;i++) {
var str:String = lines[i] + "\t";
strText += str;
}
但同样,它取决于输入 - 如果它是用户生成的,那么你需要做更多的解析。如果没有,并且您知道如何格式化HTML,则更容易。