Для описания анимации движения можно использовать классы XML и ActionScript из пакета fl.motion. В Adobe Flash Professional есть команда «Копировать движение как код ActionScript», которая создает код ActionScript и XML на основе анимации движения по шкале времени для дальнейшего использования в других проектах или на других символах. Можно также задать собственную анимацию движения. Если во время компиляции в подкаталоге класса имеются классы fl.motion, то к указанному отображаемому объекту будет применена анимация движения. Для получения дополнительной информации о классах анимации см. пакет fl.motion. Элементы по поддержке XML соответствуют классам и свойствам, описанным в справочнике ActionScript® 3.0 для Adobe® Flash® Professional CS5.
© 2015 Adobe Systems Incorporated. All rights reserved.
Tue Jun 12 2018, 11:51 AM Z
Иерархия элементов XML выглядит следующим образом:
<Motion> <Source> <dimensions/> <geom:Rectangle /> </dimensions> <transformationPoint> <geom:Point /> </transformationPoint> </Source> <Keyframe> <color> <Color /> </color> <tweens> <SimpleEase /> <CustomEase> <BezierControl /> <BezierNode /> </CustomEase> </tweens> <filters> <filters /> </filters> </Keyframe> </Motion>
В следующей таблице приводится краткая сводка по элементам и атрибутам XML, которые могут быть присвоены объекту анимации. Дополнительные сведения о каждом элементе см. в описаниях свойств, которые перечислены в классах, соответствующих каждому отдельному элементу.
Элемент | Атрибут | Тип | Описание |
---|---|---|---|
Motion | Определяет экземпляр Motion таким образом, чтобы Flash смог присвоить свойства, характеризующие анимацию движения. См. класс fl.motion.Motion. | ||
продолжительность | Number | Число кадров в выбранной анимации движения. См. свойство fl.motion.MotionBase.duration. | |
source | Содержит данные свойства исходного визуального объекта, связанного с движением. См. описание класса fl.motion.Source. | ||
Source | frameRate | Number | Параметр частоты кадров в секунду (fps) для SWF-файла, в котором содержится исходная анимация, скопированная из Flash Professional. Это значение не оказывает влияния на реализацию ActionScript в другом SWF-файле. См. описание свойства fl.motion.Source.frameRate. |
x | Number | Координата х точки преобразования экземпляра символа в начале исходной анимации движения, скопированной из Flash Professional. | |
y | Number | Координата y точки преобразования экземпляра символа в начале исходной анимации движения, скопированной из Flash Professional. | |
scaleX | Number | Процент масштаба по горизонтали, выраженный в виде десятичной дроби. Часто значение находится в пределах 0–1, но может быть как больше 1, так и меньше 0. Например, можно задать свойству scaleX значение -1 для отражения объекта или 3 для его увеличения в три раза. | |
skewX | Number | Угол (в градусах) среза вдоль горизонтальной оси. Если значения skewX и skewY равны, они заменятся атрибутом rotation. | |
skewY | Number | Угол (в градусах) среза вдоль вертикальной оси. Если значения skewX и skewY равны, они заменятся атрибутом rotation. | |
rotation | Number | Угол поворота исходного кадра. | |
elementType | String | Тип визуального объекта, используемого при анимации движения. Возможные значения: "movie clip", "button", "graphic", "rectangle object", "oval object", "drawing object", "group", "bitmap", "compiled clip", "video" или "text". | |
symbolName | String | Название символа в библиотеке документов Adobe Flash Professional, если таковой существует (так как исходный визуальный объект может и не быть экземпляром символа). | |
dimensions | Содержит теги, использующие пространство имен geom для описания точки преобразования для анимируемого символа. | ||
geom:Rectangle | Объект из пакета flash.geom. | Можно добавлять атрибуты, соответствующие свойствам объекта flash.geom.Rectangle. Например: <geom:Rectangle left="7" top="9" width="151.95" height="151.95" />Значения top и left являются относительными по отношению к точке регистрации родительского объекта (top и left определяются в пространстве координат родительского объекта). | |
geom:Point | Объект из пакета flash.geom. | Координаты точки преобразования определяются в виде процента от размеров ограничительной рамки (значения элемента geom:Rectangle). При нахождении точки преобразования в верхнем левом углу ограничительной рамки ее координатами является (0, 0). При нахождении точки преобразования в правом нижнем углу ограничительной рамки ее координатами является (1, 1). Эти значения позволяют применять точку преобразования единым образом к объектам с различными пропорциями и точками регистрации. Точка преобразования может находиться за пределами ограничительной рамки. В этом случае ее координаты могут быть меньше 0 и больше 1. | |
Keyframe | Содержит сведения о ключевом кадре на временной шкале. | ||
blank | Boolean | Указывает на то, что ключевой кадр пуст. | |
index | Number | Уникальное целое число для ключевого кадра. Первый ключевой кадр всегда имеет индекс, равный 0. В XML ключевые кадры должны быть указаны в порядке возрастания значения индекса. | |
label | String | Дополнительная строка, описывающая ключевой кадр и соответствующая метке кадра на временной шкале. | |
tweenSync | Boolean | Переключает значение синхронизации: "true" (включено) или "false" (выключено). Sync заново вычисляет число кадров в анимации, чтобы число соответствовало числу кадров, выделенных на временной шкале. Действие этого атрибута не распространяется на анимацию ActionScript, так как ActionScript не может контролировать графические символы. Атрибут XML используется только командами Adobe Flash Professional «Копировать движение» и «Вставить движение». Если отсутствует в XML, то подставляется значение по умолчанию true. | |
tweenSnap | Boolean | Переключает значение «Привязка»: "true" (включено) или "false" (выключено). Привязка осуществляет привязку к контуру движения символа по точке его регистрации. Действие этого атрибута не распространяется на анимацию ActionScript, так как ActionScript не может контролировать графические символы. Атрибут XML используется только командами Adobe Flash Professional «Копировать движение» и «Вставить движение». Если отсутствует в XML, то подставляется значение по умолчанию true. | |
x | Number | Координата x центральной точки экземпляра символа в начале текущего ключевого кадра. | |
y | Number | Координата y центральной точки экземпляра символа в начале текущего ключевого кадра. | |
scaleX | Number | Процентное значение горизонтального масштаба в виде десятичного значения от 0 до 1. Это значение обычно находится в диапазоне от 0 до 1, но может и выходить за пределы этого диапазона. Например, scaleX может равняться -1 (зеркальное отражение объекта) или 3 (троекратное увеличение исходного размера объекта). | |
scaleY | Number | Процентное значение вертикального масштаба в виде десятичного значения от 0 до 1. Это значение обычно находится в диапазоне от 0 до 1, но может и выходить за пределы этого диапазона. Например, scaleY может равняться -1 (зеркальное отражение объекта) или 3 (троекратное увеличение исходного размера объекта). | |
skewX | Number | Угол (в градусах) среза вдоль горизонтальной оси. Если значения skewX и skewY равны, они заменятся атрибутом rotation. | |
skewY | Number | Угол (в градусах) среза вдоль вертикальной оси. Если значения skewX и skewY равны, они заменятся атрибутом rotation. | |
rotation | Number | Угол поворота текущего кадра. | |
rotateDirection | String | Указывает на способ вращения анимируемого элемента. Возможные значения: "auto", "none", "cw", "ccw". Если отсутствует в XML, то подставляется значение по умолчанию "auto". | |
rotateTimes | Number | Указывает на количество вращений анимированного объекта между начальным и последующим ключевым кадром в дополнение к обычному вращению. В Adobe Flash Professional требуется, чтобы это значение было целым и больше или равно 0. Однако классы движения допускают десятичные значения. | |
tweenScale | Boolean | Если значение равно false, то масштаб во время анимации не меняется. Если отсутствует в XML, то подставляется значение по умолчанию true. | |
cacheAsBitmap | Boolean | Если отсутствует в XML, то подставляется значение по умолчанию false. | |
blendMode | String | Возможные значения: "normal", "layer", "multiply", "screen", "overlay", "hardlight", "lighten", "darken", "difference", "add", "subtract", "invert", "alpha" и "erase". Если отсутствует в XML, то подставляется значение по умолчанию "normal". | |
orientToPath | Boolean | Если отсутствует в XML, то подставляется значение по умолчанию false. | |
Color | Содержит настройки для цветовых изменений. Экземпляры символов Flash имеют пять цветовых режимов: ни одного, альфа, тон, яркость и дополнительный. Когда преобразование не применяется (ни одного), тег Color пустой и определяет нормальный внешний вид. При использовании альфа-преобразований необходимо задать атрибуты alphaMultiplier и alphaOffset. Для преобразований тона необходимо задать атрибуты tintColor и tintMultiplier.Для преобразований яркости используется атрибут brightness.Для дополнительных преобразований используются атрибуты redMultiplier, greenMultiplier, blueMultiplier, alphaMultiplier, redOffset, greenOffset, blueOffset и alphaOffset. | ||
brightness | Number | Процентное значение для применения канала яркости от -1 до 1, где -1 — полностью черный цвет, 1 — полностью белый цвет. | |
tintColor | Hexidecimal | Шестнадцатеричное значение применяемого цвета. | |
alphaMultiplier | Number | Процентное значение для применения альфа-канала в виде десятичного значения от 0 до 1. | |
redMultiplier | Number | Процентное значение для применения цвета оттенка в виде десятичного значения от 0 до 1. | |
greenMultiplier | Number | Процентное значение для применения цвета оттенка в виде десятичного значения от 0 до 1. | |
blueMultiplier | Number | Процентное значение для применения цвета оттенка в виде десятичного значения от 0 до 1. | |
alphaMultiplier | Number | Десятичное значение от 0 до 1, представляющее собой процентное значение для применения прозрачности альфа-канала. | |
tintMultiplier | Number | Десятичное значение от 0 до 1, представляющее собой процентное значение для применения значения tintColor. | |
redOffset | Number | Число от -255 до 255, добавляемое к значению красного канала после умножения на значение redMultiplier. | |
greenOffset | Number | Число от -255 до 255, добавляемое к значению зеленого канала после умножения на значение greenMultiplier. | |
blueOffset | Number | Число от -255 до 255, добавляемое к значению синего канала после умножения на значение blueMultiplier. | |
alphaOffset | Number | Число от -255 до 255, добавляемое к значению альфа-канала после умножения на значение alphaMultiplier. | |
tweens | Содержит настройки для вариаций замедлений. | ||
SimpleEase | Определяет параметр замедления. Данное значение действует на протяжении всей анимации движения для всех соответствующих свойств. | ||
ease | Number | Значение замедления, применяемое ко всем свойствами в анимации движения. Атрибут ease представляет собой процентное значение от -1 (100% ускорение) и 1 (100% замедление). При значении по умолчанию (0) скорость анимации остается постоянной (без ускорения или замедления). | |
target | Number | При использовании команд Adobe Flash Professional «Копировать движение» и «Вставить движение» средство разработки создает XML, не содержащий атрибут target для элемента SimpleEase, так как Flash Professional использует одно и то же значение всех свойств замедления. Однако классы ActionScript 3.0 позволяют одновременно присвоить отдельным свойствам различные значения SimpleEase. Для атрибута target могут использоваться те же значения, что и для CustomEase: position, scale, rotation, color, filters, x, y, scaleX, scaleY, skewX и skewY. | |
CustomEase | Определяет пользовательскую кривую замедления, состоящую из кубических кривых Безье. Может использоваться одновременно для всех свойств. Также можно определить разные кривые для отдельных свойств. Дополнительные сведения о кривых, которые представляют свойства пользовательского замедления, см. в описании класса CustomEase. | ||
target | Number | Свойство, которому присваивается пользовательское значение. При использовании команд Adobe Flash Professional «Копировать движение» и «Вставить движение» средство разработки создает возможные значения target: position, scale, rotation, color, filters. Классы движения ActionScript 3.0 предоставляют еще больше гибкости, с их помощью можно определять отдельные кривые для свойств x, y, scaleX, scaleY, skewX и skewY. Если атрибут target опускается в XML, все свойства замедления имеют общую цель. Примечание. В XML пропускаются первая и последняя точки пользовательской кривой замедления. Первая точка всегда должна находиться в положении (0, 0) (начальное значение анимированного свойства), а последняя — в положении (1, 1) (конечное значение анимированного свойства). В целях оптимизации кода и во избежание потенциальных ошибок эти значения опускаются в XML и считаются подразумеваемыми. | |
BezierControl | Точка по отношению к кривой, используемая для ее определения. | ||
x | Number | Координата x точки для определения кривой. | |
y | Number | Координата y точки для определения кривой. | |
BezierNode | Точка на кривой, используемая для ее определения. | ||
x | Number | Координата x точки на кривой. | |
y | Number | Координата y точки на кривой. | |
filters | Определяет объект из пакета flash.filters для использования в качестве элемента (например, filters:GlowFilter). Можно добавлять атрибуты, соответствующие свойствам заданного объекта flash.filters. Например: <filters:DropShadowFilter quality="1" inner="false" knockout="false" hideObject="false" distance="0" angle="45" color="0x000000" alpha="1" blurX="0" blurY="0" strength="0" />. См. описание пакета flash.filters. |
В следующем примере далее показан фрагмент кода ActionScript с XML, описывающим анимацию движения экземпляра ролика moveShape для символа myShape. По мере его вращения и передвижения используется параметр замедления, а значения альфа-канала меняются через каждые 10 кадров:
import fl.motion.Animator; var moveShape_xml:XML = <Motion duration="10" xmlns="fl.motion.*" xmlns:geom="flash.geom.*" xmlns:filters="flash.filters.*"> <source> <Source frameRate="12" x="41.35" y="91.35" scaleX="1" scaleY="1" rotation="0" elementType="movie clip" instanceName="moveShape" symbolName="myShape"> <dimensions> <geom:Rectangle left="-46.65" top="-61.95" width="133.05" height="133.95"/> </dimensions> <transformationPoint> <geom:Point x="0.49981210071401727" y="0.4998133631952222"/> </transformationPoint> </Source> </source> <Keyframe index="0" rotateTimes="2"> <tweens> <CustomEase> <BezierControl x="0.08650266979261687" y="0.14705453864744866"/> <BezierControl x="0.23675978562091857" y="0.28829454738109694"/> <BezierNode x="0.2689728109485753" y="0.49688733564952436"/> <BezierControl x="0.32093023255813957" y="0.8333333333333333"/> <BezierControl x="0.5988021982960045" y="1.034249160488573"/> <BezierNode x="0.7309082984924317" y="0.8685852488735627"/> <BezierControl x="0.8116279069767443" y="0.767361111111111"/> <BezierControl x="0.910302766164144" y="0.9730908298492431"/> </CustomEase> </tweens> </Keyframe> <Keyframe index="9" x="371.95" y="188"> <color> <Color alphaMultiplier="0.4" alphaOffset="0"/> </color> </Keyframe> </Motion>; var moveShape_animator:Animator = new Animator(moveShape_xml, moveShape); moveShape_animator.play();
Tue Jun 12 2018, 11:51 AM Z