![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2008
Сообщений: 7
|
Имеем следующий код:
var field:TextField = new TextField();
addChild(field);
field.multiline=true;
var format:TextFormat = new TextFormat();
format.font="Verdana";
format.size=15;
format.color=0xFF0000;
field.defaultTextFormat=format;
field.height=300;
field.width=300;
field.border=true;
field.htmlText="Тестовый текст";
var butt:Sprite = new Sprite();
addChild(butt);
var child:Shape = new Shape();
child.graphics.beginFill(0xFF0000);
child.graphics.drawCircle(30, 30, 30);
child.graphics.endFill();
butt.addChild(child);
butt.x = 310;
butt.addEventListener(MouseEvent.MOUSE_DOWN,addHtmlText);
function addHtmlText(evt:MouseEvent):void {
field.htmlText+="Новый текст";
}
Все казалось бы нормально, но: пробуем выделить уже написанный текст (в самом текстфилде), и в этот момент нажимаем на кнопку. И что мы видим? defaultTextFormat для вновь добавленного текста не сработал, хотя по докам вполне таки должен был. Происходит это только с htmlText, и не могу понять почему? Никто с таким не сталкивался? Есть, конечно, вариант использовать setTextFormat и, указав beginIndex, endIndex, менять только что добавленный текст. Но тогда вся суть htmlText, теряется, поскольку format перепишет всю стилистику заданную в хтмл (например цвет). Никто не догадывается как этого можно избежать? :-/ |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 7
|
UPD: Блин, пол дня парился, а простую вещь проверить мне только сейчас посоветовали:
если перед добавлением снова задать defaultTextFormat, то все срабатывает. function addHtmlText(evt:MouseEvent):void {
field.defaultTextFormat=format;
field.htmlText+="Новый текст";
}
К тому же не будет ли это решение довольно затратным в плане ресурсов? ведь в этот момент все параметры format копируются на текстовое поле? например в моем проекте, обновлять поле при получении сообщений приходится порой до двадцати раз в секунду :/ кажется, эта схема будет притормаживать на слабых машинах. Последний раз редактировалось d3e; 05.02.2008 в 15:37. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:45. |
|
|
« Предыдущая тема | Следующая тема » |
|
|