MerlinTwi
05.12.2006, 16:45
Имеем поле ввода (InputText) в него записывается некий html-шаблон и дается возможность пользователю редактировать. Шаблон подразумевает наличие 1-ой и более картинок, расположенных по центру текстового поля и без обтекания текстом.
Объявляется конкурс на лучшее решение :)
Учтите, основная проблема в том, что поле редактируемое, т.е. разместить дцать BR после картинки не катит, пользователь может их удалить.
Начну с себя.
1. Чтобы разместить картинку по центру, надо заюзать hspace, прописать туда половину свободных пикселей (размеры картинки и текстового поля заранее известны)
2. Чтобы избавиться от текста справа (который становится невидимым т.к. справа от картинки уже край текстового поля, но упорно туда залезает), можно расположить картинку в textformat с leading="высота картинки + 4"
Пример:
// this.txt - редактируемое текстовое поле
var w:Number = 320; // размеры картинки
var h:Number = 180;
this.txt.htmlText = "<b>Заголовок</b><BR>Текст какой-то"+
'<BR><textformat leading="'+(h+4)+'">'+
'<img width="'+w+'" height="'+h+'" src="ring.jpg" hspace="'+
((this.txt.width-w)/2-4)+'" id="m1"></textformat><BR>'+
"Продолжение текста...";
Недостатки: можно поставить курсор справа от картинки (мышкой или стрелками на клавиатуре) и если туда вбивать текст, то он выглядит как набор точек, а если жать Enter, то получаем новые пустые строчки высотой с картинку.
Возможное решение этого бага: следить за положением курсора и принудительно его отодвигать с места за картинкой... но это не красиво :(
Объявляется конкурс на лучшее решение :)
Учтите, основная проблема в том, что поле редактируемое, т.е. разместить дцать BR после картинки не катит, пользователь может их удалить.
Начну с себя.
1. Чтобы разместить картинку по центру, надо заюзать hspace, прописать туда половину свободных пикселей (размеры картинки и текстового поля заранее известны)
2. Чтобы избавиться от текста справа (который становится невидимым т.к. справа от картинки уже край текстового поля, но упорно туда залезает), можно расположить картинку в textformat с leading="высота картинки + 4"
Пример:
// this.txt - редактируемое текстовое поле
var w:Number = 320; // размеры картинки
var h:Number = 180;
this.txt.htmlText = "<b>Заголовок</b><BR>Текст какой-то"+
'<BR><textformat leading="'+(h+4)+'">'+
'<img width="'+w+'" height="'+h+'" src="ring.jpg" hspace="'+
((this.txt.width-w)/2-4)+'" id="m1"></textformat><BR>'+
"Продолжение текста...";
Недостатки: можно поставить курсор справа от картинки (мышкой или стрелками на клавиатуре) и если туда вбивать текст, то он выглядит как набор точек, а если жать Enter, то получаем новые пустые строчки высотой с картинку.
Возможное решение этого бага: следить за положением курсора и принудительно его отодвигать с места за картинкой... но это не красиво :(