четверг, апреля 17, 2008

Изображения в текстовом поле. AS2

HTML-размета текстового поля, для Flash не менее 8-й версии, поддерживает динамическую загрузку изображений, путем указания тега <IMG>.

Поддерживаются следующие параметры тега:
src - URL изображения (JPEG, GIF, PNG, или SWF). Изображения не отображаются до тех пор, пока полностью не загрузятся.
id - имя клипа, который будет создан FP и в который загрузится изображение. Подробнее здесь.
width - ширина изображения в пикселах.
height - высота изображения в пикселах.
align - горизонтальное выравнивание изображения. возможны значения "left" и "right". По умолчанию - "left".
hspace - отступы от краев изображения по горизонтали. По умолчанию "8".
vspace - отступы от краев изображения по вертикали. По умолчанию "8".

Заметки:
  • Текст обтекает изображение по принципу, общепринятому в HTML-разметке.
  • Пока вертикальные размер и отступы изображения умещаются в расстояние от верха строчки до ее низа, нижняя строчка не смещается. (Например, при размере шрифта 11px и Line spacing 2pt, максимальный размер изображения по вертикали - 15)
  • Если перед тегом IMG есть текст (даже просто пробел), изображение вставляется в строку, расположенную ниже той, куда был вставлен тег.
  • Мы никогда не сможем поместить изображение в центр текстового блока.
  • Если указать только width или только height, с изображением ничего не произойдет.
  • Если встатвить подряд несколько абсолютно схожих тегов IMG, изображения выведутся в одну точку. Однако, стоит изменить один из параметров, как все последующие изображения выводятся ниже строкой.
  • Если задать подряд два тега IMG у которых параметры align установлены соответственно в "left" и "right", второе изображение всё равно будет строчкой ниже. А если второй тег поставить в конец строки - его изображение спустится уже на две строчки.
  • Еще одна ужасная особенность. Если свойство wordWrap = false, и тег IMG стоит первым, изображение просто не выводится.

Можно и дальше продолжить пытки TextField, и выявить новые фичи (читай баги). Но уже и так понятно, что нормальная вставка изображений в текст TextField (без хорошего бубна) невозможна.

2 комментария:

Анонимный комментирует...

А как вывести 2 изображения в одну строку??? Или вставить изображение посреди текста?

Unknown комментирует...

Это всё очень не просто, или даже невозможно.
Я бы предпочел свой рендер текста для таких случаев. Вот к примеру ссылка по теме
http://wu-media.com/2009/05/extracting-font-glyphs-from-swf-and-drawing-with-them/