|
Лучшим способом создания SWF-файла обложки является копирование одного из файлов обложки, поставляемых с Flash, и использование его в качестве отправной точки. FLA-файлы для этих обложек можно найти в папке приложения Flash в Configuration/FLVPlayback Skins/FLA/ActionScript 3.0/. Чтобы законченный SWF-файл обложки стал доступным для выбора в диалоговом окне «Выбрать обложку», поместите его в папку Configuration/FLVPlayback Skins/ActionScript 3.0 либо в папке приложения Flash, либо в локальной папке пользователя Configuration/FLVPlayback Skins/ActionScript 3.0.
Так как цвет обложки можно задать отдельно от выбора обложки, нет необходимости редактировать FLA-файл для изменения цвета. Если вы создаете обложку определенного цвета и не хотите, чтобы он был редактируемым в диалоговом окне «Выбрать обложку», установите
this.border_mc.colorMe = false;
в коде ActionScript FLA-файла обложки. Дополнительные сведения о задании цвета обложки см. в разделе «
Выбор предустановленной обложки
».
Если посмотреть на установленные FLA-файлы обложек во Flash, может показаться, что некоторые элементы в рабочей области не нужны, но многие из них вложены в слои направляющих. При интерактивном просмотре с 9-зонным масштабированием можно увидеть, что на самом деле отобразится в SWF-файле.
В последующих разделах приводятся описания более сложных настроек и изменений фрагментов роликов SeekBar, BufferingBar и VolumeBar.
Использование макета обложки
При открытии FLA-файла обложки Flash вы увидите, что фрагменты роликов обложки расположены на основной временной шкале. Эти ролики и код ActionScript, который находится в том же кадре, определяют расположение элементов управления при исполнении.
Хотя слой макета имеет такой вид, какой будет иметь обложка при исполнении, содержимое этого слоя не видимо при исполнении. Он используется только для расчета размещения элементов управления. Другие элементы управления в рабочей области используются при исполнении.
На слое макета находится местозаполнитель для компонента FLVPlayback с именем video_mc. Все другие элементы управления размещаются относительно video_mc. Если начать с одного из FLA-файлов Flash и изменить размер элементов управления, можно поправить макет, переместив эти ролики местозаполнителей.
Каждый из роликов местозаполнителей имеет свое имя экземпляра. Ролики местозаполнителей имеют имена playpause_mc, play_mc, pause_mc, stop_mc, captionToggle_mc, fullScreenToggle_mc, back_mc, bufferingBar_mc, bufferingBarFill_mc, seekBar_mc, seekBarHandle_mc, seekBarProgress_mc, volumeMute_mc, volumeBar_mc и volumeBarHandle_mc. Часть, цвет которой изменяется при выборе цвета обложки, называется border_mc.
Неважно, какой из роликов используется для элемента управления. Как правило, для кнопок используется ролик нормального состояния. В отношении других элементов управления, для удобства используется ролик для этого элемента управления. Что действительно важно, так это положение
x
(по горизонтали) и положение
y
(по вертикали), а также ширина и высота местозаполнителя.
Помимо стандартных элементов управления можно иметь сколько угодно дополнительных роликов. Единственным требованием к этим роликам является то, что для их символов в библиотеке должен быть установлен флажок «Экспорт для ActionScript» в диалоговом окне «Связывание». Пользовательские ролики в слое макета могут иметь любое имя экземпляра, кроме зарезервированных имен, перечисленных выше. Имя экземпляра требуется только для сценария ActionScript роликов при определении макета.
Ролик border_mc особенный. Если установить свойство
FlvPlayback.skinAutoHide
на значение
true,
обложка отображается при наведении указателя мыши на ролик border_mc. Это важно для обложек, которые отображаются за границами видеопроигрывателя. Сведения о свойстве
skinAutoHide
см. в разделе «
Изменение поведения обложек
».
В FLA-файлах Flash border_mc используется для хромирования и рамки кнопок Forward и Back.
Ролик border_mc является также частью обложки, значения альфа-канала и цвета которой были изменены при помощи свойств
skinBackgroundAlpha
и
skinBackgroundColor
. Чтобы значения цвета и альфа-канала были настраиваемыми, ActionScript в FLA-файле обложки должен содержать следующую строку:
border_mc.colorMe = true;
ActionScript и макет обложки
Следующий код ActionScript, как правило, применим ко всем элементам управления. Некоторые элементы управления имеют особый сценарий ActionScript, который определяет дополнительное поведение, которое описано в разделе, посвященном конкретному элементу управления.
Исходный код ActionScript представляет собой большой раздел, в котором указаны имена классов для каждого состояния каждого компонента. Все эти имена классов приведены в файле SkinOverAll.fla. Например, для кнопок Pause и Play такой код выглядит следующим образом:
this.pauseButtonDisabledState = "fl.video.skin.PauseButtonDisabled";
this.pauseButtonDownState = "fl.video.skin.PauseButtonDown";
this.pauseButtonNormalState = "fl.video.skin.PauseButtonNormal";
this.pauseButtonOverState = "fl.video.skin.PauseButtonOver";
this.playButtonDisabledState = "fl.video.skin.PlayButtonDisabled";
this.playButtonDownState = "fl.video.skin.PlayButtonDown";
this.playButtonNormalState = "fl.video.skin.PlayButtonNormal";
this.playButtonOverState = "fl.video.skin.PlayButtonOver";
Имена классов не имеют фактических внешних файлов класса; они просто указаны в диалоговом окне «Связывание» для всех фрагментов роликов в библиотеке.
В компоненте версии ActionScript 2.0 в рабочей области находились фрагменты роликов, которые на самом деле использовались при исполнении. В компоненте версии ActionScript 3.0 эти фрагменты роликов также находятся в FLA-файле, но лишь для удобства редактирования. Теперь они все содержатся в слоях направляющих и не экспортируются. Для всех активов обложки в библиотеке задан экспорт в первый кадр, и они создаются динамически при помощи, например, такого кода:
new fl.video.skin.PauseButtonDisabled();
За этим разделом следует код ActionScript, который определяет минимальную ширину и высоту обложки. Эти значения отображаются в диалоговом окне «Выбрать обложку» и используются при исполнении для предотвращения задания размера обложки меньше минимального. Если вы не хотите указывать минимальный размер, задайте неопределенное значение или значение меньше или равное нулю.
// minimum width and height of video recommended to use this skin,
// leave as undefined or <= 0 if there is no minimum
this.minWidth = 270;
this.minHeight = 60;
К каждому местозаполнителю можно применить следующие свойства:
|
Свойство
|
Описание
|
|
anchorLeft
|
Boolean. Располагает элемент управления относительно левого края экземпляра FLVPlayback. Значением по умолчанию является
true
, но если свойство
anchorRight
установлено явным образом на значение
true
, то значением по умолчанию будет
false
.
|
|
anchorRight
|
Boolean. Располагает элемент управления относительно правого края экземпляра FLVPlayback. Значением по умолчанию является
false
.
|
|
anchorBottom
|
Boolean. Располагает элемент управления относительно нижнего края экземпляра FLVPlayback. Значением по умолчанию является
true
, но если свойство
anchorTop
установлено явным образом на значение
true
, то значением по умолчанию будет
false
.
|
|
anchorTop
|
Boolean. Располагает элемент управления относительно верхнего края экземпляра FLVPlayback. Значением по умолчанию является
false
.
|
Если оба свойства —
anchorLeft
и
anchorRight
— имеют значение
true
, элемент управления масштабируется по горизонтали при исполнении. Если оба свойства —
anchorTop
и
anchorBottom
— имеют значение
true
, элемент управления масштабируется по вертикали при исполнении.
Эффект применения этих свойств можно увидеть на примере их использования в обложках Flash. Только элементы управления BufferingBar и SeekBar поддаются масштабированию. Они накладываются поверх друг друга, и оба их свойства —
anchorLeft
и
anchorRight
— имеют значение
true
. Все элементы управления слева от BufferingBar и SeekBar имеют свойство
anchorLeft
установленное на
true
, а все элементы управления, расположенные справа, имеют свойство
anchorRight
установленное на
true
. Свойство
anchorBottom
всех элементов управления установлено на значение
true
.
Можно попытаться отредактировать фрагменты роликов на слое макета так, чтобы создать обложку с элементами управления, расположенными сверху, а не снизу. Для этого требуется просто переместить элементы управления вверх относительно
video_mc
и установить свойство
anchorTop
всех элементов управления на значение
true
.
Строка буферизации
Строка буферизации имеет два фрагмента роликов: bufferingBar_mc и bufferingBarFill_mc. Положение каждого ролика относительно другого ролика в рабочей области имеет значение, так как такое относительное положение сохраняется. Строка буферизации использует два отдельных ролика, так как масштабирование применяется только к bufferingBar_mc, а не к bufferingBarFill_mc.
К ролику bufferingBar_mc применяется 9-зонное масштабирование, поэтому при масштабировании границы не искажаются. Ролик bufferingBarFill_mc очень широкий, поэтому он не нуждается в масштабировании. Для него автоматически создается маска при исполнении для отображения части вытянутого ролика bufferingBar_mc. По умолчанию точные размеры маски будут сохранять равные поля слева и справа в bufferingBar_mc на основе разницы значений положений
x
(по горизонтали) роликов bufferingBar_mc и bufferingBarFill_mc. Расположение можно настроить при помощи кода ActionScript.
Если строка буферизации не нуждается в масштабировании или не использует 9-зонное масштабирование, ее можно настроить как компонент BufferingBar пользовательского интерфейса для воспроизведения FLV-файлов. Дополнительные сведения см. в разделе «
Компонент BufferingBar
».
Строка буферизации имеет дополнительное свойство:
|
Свойство
|
Описание
|
|
fill_mc:MovieClip
|
Задает имя экземпляра заполнителя строки буферизации. Значением по умолчанию является bufferingBarFill_mc.
|
Строка поиска и регулятор громкости
Строка поиска имеет два фрагмента роликов: seekBar_mc и seekBarProgess_mc. Положение каждого ролика относительно другого ролика в слое макета имеет значение, так как такое относительное положение сохраняется. Хотя оба ролика поддаются масштабированию, seekBarProgress_mc нельзя вложить в seekBar_mc, так как seekBar_mc использует 9-зонное масштабирование, которое плохо работает с вложенными фрагментами роликов.
К ролику seekBar_mc применяется 9-зонное масштабирование, поэтому при масштабировании границы не искажаются. Ролик seekBarProgress_mc также поддается масштабированию, но искажение присутствует. К нему не применяется 9-зонное масштабирование, потому что это заполнитель и его искажение не заметно.
Ролик seekBarProgress_mc работает без fill_mc, так же как и ролик progress_mc работает в компонентах пользовательского интерфейса для воспроизведения FLV-файлов. Другими словами, для него не создается маска и он масштабируется по горизонтали. Точные размеры seekBarProgress_mc при 100 % определяются левым и правым полями ролика seekBarProgress_mc. Эти размеры по умолчанию равны и основаны на разнице значений положений
x
(по горизонтали) роликов seekBar_mc и seekBarProgress_mc. Эти размеры можно настроить при помощи кода ActionScript во фрагменте ролика строки поиска, как показано в следующем примере:
this.seekBar_mc.progressLeftMargin = 2;
this.seekBar_mc.progressRightMargin = 2;
this.seekBar_mc.progressY = 11;
this.seekBar_mc.fullnessLeftMargin = 2;
this.seekBar_mc.fullnessRightMargin = 2;
this.seekBar_mc.fullnessY = 11;
Этот код можно вставить либо на временную шкалу фрагмента ролика SeekBar, либо вместе с другим кодом ActionScript на основную временную шкалу. Если настройка выполняется при помощи кода, а не за счет изменения макета, нет необходимости помещать заполнитель в рабочую область. Достаточно того, чтобы он присутствовал в библиотеке и был настроен на экспорт для ActionScript в Кадр 1 с правильным именем класса.
Как и в случае с компонентом SeekBar пользовательского интерфейса для воспроизведения FLV-файлов, для строки поиска можно создать фрагмент ролика заполненности. Если строка поиска не нуждается в масштабировании или нуждается в нем, но не использует 9-зонное масштабирование, можно установить progress_mc или fullness_mc при помощи любого из методов, используемых для компонентов пользовательского интерфейса для воспроизведения FLV-файлов. Дополнительные сведения см. в разделе «
Фрагменты роликов хода выполнения и заполненности
».
Так как регулятор громкости в обложках Flash не поддается масштабированию, он построен тем же образом, что и компонент VolumeBar пользовательского интерфейса для воспроизведения FLV-файлов. Дополнительные сведения см. в разделе «
Компоненты SeekBar и VolumeBar
». Исключением является маркер, который реализован по-другому.
Маркеры SeekBar и VolumeBar
Маркеры SeekBar и VolumeBar расположены в слое макета рядом со строкой. По умолчанию левое поле, правое поле и положение по оси
y
маркера задаются на основе его положения относительно фрагмента ролика строки. Левое поле определяется разницей между положением
x
(по горизонтали) маркера и положением
x
(по горизонтали) строки, а правое поле равно левому полю. Эти значения можно настроить при помощи ActionScript во фрагменте ролика SeekBar или VolumeBar. В следующем примере приведен тот же код ActionScript, который используется с компонентами пользовательского интерфейса для воспроизведения FLV-файлов:
this.seekBar_mc.handleLeftMargin = 2;
this.seekBar_mc.handleRightMargin = 2;
this.seekBar_mc.handleY = 11;
Этот код можно вставить либо на временную шкалу фрагмента ролика SeekBar, либо вместе с другим кодом ActionScript на основную временную шкалу. Если настройка выполняется при помощи кода, а не за счет изменения макета, нет необходимости помещать маркер в рабочую область. Достаточно того, чтобы он присутствовал в библиотеке и был настроен на экспорт для ActionScript в Кадр 1 с правильным именем класса.
Не взирая на эти свойства маркеры являются простыми фрагментами роликов, устроенными таким же образом, что и маркеры в компонентах пользовательского интерфейса для воспроизведения FLV-файлов. Оба имеют фоновые прямоугольники со свойством
alpha
установленным на 0. Они служат для увеличения области попадания и не являются обязательными.
Ролики фона и основного цвета
Фрагменты роликов chrome_mc и forwardBackBorder_mc реализованы как ролики фона.
Из фрагментов роликов ForwardBackBorder, ForwardBorder и BackBorder в рабочей области и кнопок-местозаполнителей Forward и Back единственным роликом,
не
расположенным в слое направляющих, является ForwardBackBorder. Фактически кнопки Forward и Back используются только в обложках.
Единственным требованием к этим роликам является то, что для них должен быть задан экспорт для ActionScript в Кадр 1 в библиотеке.
|
|
|