05 декабря 2008

Визуальные объекты

Flash технология поддерживает ряд встроенных визуальных объектов, но количество разновидностей ограничено, поэтому в большинстве случаев нужные элементы, например Graphics User Interface, создаются путем комбинирования нескольких "стандартный" объектов. Все стандартные объекты определяются в DefineXXX. К основным визуальным объектам можно отнести: Фигура (Shape), Морфируемая фигура (MorphShape), Статический Текст (Static Text), Динамический текст (Dynamic Text), Кнопка (Button), Видео (Video) и Спрайт (Sprite).


Обратите внимание, что нет объекта Изображение (Image). Чтобы отобразить изображение его необходимо использовать в качестве заливки для прямоугольной фигуры.


Уникальный идентификатор CharacterID


Каждый визуальный объект имеет свой уникальный CharacterID – число типа word , т.е. значение в диапазоне 0..$FFFF. Если вы самостоятельно создаете объекты, то должны позаботится о его уникальности. Уникальность необходима для того, чтобы плеер однозначно понимал какой объект использовать при обработке tagPlaceObject.


Когда необходимо «склеить» несколько SWF, то первая задача состоит в том, что необходимо обеспечить уникальность этих CharacterID, в противном случае некоторые объекты просто не будут отображаться. Для этого необходимо переопределить все значения в одной из SWF путем изменения значений на заведомо незанятое значение.


Имена объектов


Как я отмечал ранее, имя назначается экземпляру объекта в tagPlaceObject при этом указание CharacterID обязательно. Можно создать несколько экземпляров одного объекта с разными именами. Опять таки, при склеивании двух SWF необходимо обеспечить уникальность имен. Имена как правило используются в ActionScript для управления этими экземплярами, поэтому в случае переименования объектов необходимо сделать соответствующие корректировки в ActionScript.

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

Yuriy Yarovoy комментирует...

> Обратите внимание, что нет объекта Изображение (Image). Чтобы отобразить изображение его необходимо использовать в качестве заливки для прямоугольной фигуры.

Для отображения растровых изображений в списке видимости плеера не обязательно прорисовывать заливку на основе данных BitmapData. Можно просто воспользоваться объектом Bitmap и добавить его в список видимости.

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

Хм...
Создал для проверки тестовый пример, создающий SWF вот такой структуры:
{SWF XMax="6000" YMax="4000" FPS="24" Version="8" SystemCoord="Twips" Compressed="true"}
{DefineBitsJPEG2 ID="1" File="christmas.jpg"/}
{PlaceObject2 ID="1" Depth="1"/}
{ShowFrame/}
{End/}
{/SWF}

Ни каких изображений не наблюдаю.

Вы можете привести свой пример?