PDA

Просмотр полной версии : разделить htmlText на несколько текстфилдов


incvizitor
20.05.2010, 13:43
У меня такая проблема: есть хтмл которым надо заполнить несколько текстовых полей. Текст разбивается на масив и по одному элементу вставляется. Как только одно поле заполняется, текст начинает заполнять следующее. Всё конечно же ок, одна проблема - текст html.... попробовал создать поле которому присвоил значение htmlText, текста который нужен, но тут возникли проблемы:

1 - переносы (br) нафиг игнорятся.
2 - если в начале поля текст был розовый, то он будет розовым до его конца.

Вот фрагмент кода:


private function _createCollumns():void {

var appField:TextField = new TextField();

_initCollumn(appField);

appField.htmlText = _data;

//addChild(appField);

var arr:Array = appField.text.split(" ");
var col:TextField = new TextField();
col.x = _padding/2;
_collumns.push(col);
_initCollumn(col);
addChild(col);

_colWidth = maxWidth / 3;

var nLines:uint;

var appI:uint=0;

for each(var word:String in arr) {
var sI:uint = col.text.length;

col.appendText(word + " ");

var fI:uint = col.text.length;

var f = appField.getTextFormat(Math.min(appI, appField.text.length), Math.min(appI += word.length + 1, appField.text.length));

col.setTextFormat(f, sI, fI);

//trace(sI, fI);

var condition:Boolean = false;

if (!nLines) {
condition = col.textHeight > maxHeight;
}else {
condition = nLines < col.numLines;
}


if (condition) {
if (!nLines) {
nLines = col.numLines;
}

col.text = col.text.substring(0, col.text.length - word.length - 2);
col = new TextField();
_initCollumn(col);
col.x = _colWidth * _collumns.length + _padding / 2;
col.appendText(word + " ");
col.setTextFormat(f);
addChild(col);
_collumns.push(col);
}


}
}

private function _initCollumn(col:TextField):void {
var f:TextFormat= Global.TEXT_FORMAT;

f.size = 14;
f.align = TextFormatAlign.JUSTIFY;
col.defaultTextFormat = f;

col.antiAliasType = AntiAliasType.ADVANCED;

col.embedFonts = true;

col.textColor = 0xffffff;

col.autoSize = "left";

col.sharpness = 0;
col.thickness = -200;

col.width = maxWidth / 3 - _padding;

col.cacheAsBitmap = true;
SelectionColor.setFieldSelectionColor(col, 0xFFFFFF);
col.multiline = true;
col.wordWrap = true;
}