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 комментария:
> Обратите внимание, что нет объекта Изображение (Image). Чтобы отобразить изображение его необходимо использовать в качестве заливки для прямоугольной фигуры.
Для отображения растровых изображений в списке видимости плеера не обязательно прорисовывать заливку на основе данных BitmapData. Можно просто воспользоваться объектом Bitmap и добавить его в список видимости.
Хм...
Создал для проверки тестовый пример, создающий 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}
Ни каких изображений не наблюдаю.
Вы можете привести свой пример?
Отправить комментарий