Animację ruchu można opisać za pomocą kodu XML oraz klas języka ActionScript zawartych w pakiecie fl.motion package. Program Adobe Flash Professional udostępnia polecenie „Kopiuj ruch jako ActionScript”, które generuje kod XML i ActionScript na podstawie animacji ruchu zdefiniowanej na osi czasu. Tak zapisanej animacji można używać z innymi symbolami lub w innych projektach. Istnieje także możliwość pisania własnych skryptów animacji ruchu. O ile tylko klasy fl.motion będą dostępne w ścieżce klas w momencie kompilacji, animacja ruchu zostanie zastosowana do określonego obiektu wyświetlanego. Więcej informacji o klasach ruchu zawiera opis pakietu fl.motion. Elementy obsługującego kodu XML odpowiadają klasom i właściwościom opisanym w Skorowidzu języka ActionScript 3.0.
© 2015 Adobe Systems Incorporated. All rights reserved.
Tue Jun 12 2018, 12:23 PM Z
Hierarchia elementów kodu XML jest następująca:
<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>
W poniższej tabeli zamieszczono skrócone podsumowanie elementów i atrybutów XML, które można przypisywać do obiektu ruchu. Więcej informacji o poszczególnych pozycjach zawierają opisy właściwości klas odpowiadających poszczególnym elementom:
Element | Atrybut | Typ | Opis |
---|---|---|---|
Motion | Definiuje instancję klasy Motion, umożliwiającą programowi Flash nadanie wartości właściwościom opisującym animację ruchu. Informacje zawiera opis klasy fl.motion.Motion. | ||
duration | Number | Liczba klatek dla wybranej animacji ruchu. Informacje zawiera opis właściwości fl.motion.MotionBase.duration. | |
source | Zawiera właściwości oryginalnego obiektu wizualnego skojarzonego z ruchem. Informacje zawiera opis klasy fl.motion.Source. | ||
Source | frameRate | Number | Liczba klatek na sekundę określona dla pliku SWF zawierającego oryginalną animację skopiowaną z programu Flash Professional. Ta wartość nie ma żadnego wpływu na implementację kodu ActionScript w innym pliku SWF. Informacje zawiera opis właściwości fl.motion.Source.frameRate. |
x | Number | Współrzędna x punktu transformacji instancji symbolu na początku oryginalnej animacji ruchu skopiowanej z programu Flash Professional. | |
y | Number | Współrzędna y punktu transformacji instancji symbolu na początku oryginalnej animacji ruchu skopiowanej z programu Flash Professional. | |
scaleX | Number | Wyrażona procentowo skala pozioma, podana jako ułamek dziesiętny. Jest to często wartość z przedziału od 0 do 1, ale może być również większa od 1 lub mniejsza od 0. Można na przykład ustawić wartość scaleX na -1, aby przerzucić obiekt, lub na 3, aby powiększyć obiekt 3-krotnie w stosunku do oryginalnego rozmiaru. | |
skewX | Number | Kąt (w stopniach) ścięcia wzdłuż osi poziomej. Jeśli wartości skewX i skewY są równe, zostaną zastąpione przez atrybut rotation. | |
skewY | Number | Kąt (w stopniach) ścięcia wzdłuż osi pionowej. Jeśli wartości skewX i skewY są równe, zostaną zastąpione przez atrybut rotation. | |
rotation | Number | Kąt obrotu (w stopniach) w pierwszej klatce. | |
elementType | String | Typ obiektu wizualnego użytego w animacji ruchu. Możliwe wartości to: movie clip", "button", "graphic", "rectangle object", "oval object", "drawing object", "group", "bitmap", "compiled clip", "video" i "text". | |
symbolName | String | Nazwa symbolu w bibliotece dokumentu programu Adobe Flash Professional, o ile istnieje (ponieważ oryginalny obiekt wizualny nie musi być instancją symbolu). | |
dimensions | Zawiera znaczniki należące do przestrzeni nazw geom i opisujące prostokąt otaczający oraz punkt transformacji animowanego symbolu. | ||
geom:Rectangle | Obiekt z pakietu flash.geom. | Możliwe jest dodawanie atrybutów odpowiadających właściwościom obiektu flash.geom.Rectangle. Na przykład: <geom:Rectangle left="7" top="9" width="151.95" height="151.95" />Wartości top i left są określane względem punktu rejestracji obiektu nadrzędnego (wartości top i left są zdefiniowane w układzie współrzędnych obiektu nadrzędnego). | |
geom:Point | Obiekt z pakietu flash.geom. | Współrzędne punktu transformacji są zdefiniowane jako odsetek wymiarów prostokąta otaczającego (wartości elementu geom:Rectangle). Jeśli punkt transformacji znajduje się w lewym górnym rogu prostokąta otaczającego, współrzędne są równe (0, 0). Jeśli punkt transformacji znajduje się w prawym dolnym rogu prostokąta otaczającego, współrzędne są równe (1, 1). Wartości te umożliwiają spójne stosowanie punktu transformacji do obiektów o różnych proporcjach, z różnie ulokowanymi punktami rejestracji. Punkt transformacji może znajdować się poza obwiednią, a w tym przypadku współrzędne mogą być mniejsze niż 0 i większe niż 1. | |
Keyframe | Zawiera informacje odpowiadające klatce kluczowej na osi czasu. | ||
blank | Boolean | Informuje, że klatka kluczowa jest pusta. | |
index | Number | Unikatowa liczba całkowita identyfikująca klatkę kluczową. Indeks pierwszej klatki jest zawsze równy 0. Klatki kluczowe muszą być opisywane w kodzie XML w kolejności rosnących indeksów. | |
label | String | Opcjonalny ciąg znaków, który opisuje klatkę kluczową odpowiadającą etykiecie klatki na osi czasu. | |
tweenSync | Boolean | Włącza ("true") i wyłącza ("false") ustawienie synchronizacji. Synchronizacja powoduje przeliczenie liczby klatek w animacji w taki sposób, aby zgadzała się z liczbą klatek przeznaczoną na animację na osi czasu. Ten atrybut nie ma wpływu na animację opisaną przez kod ActionScript, ponieważ język ActionScript nie umożliwia sterowania symbolami graficznymi. Ten atrybut XML jest używany tylko przez polecenia Kopiuj ruch i Wklej ruch w programie Adobe Flash Professional. W razie pominięcia tego atrybutu w kodzie XML przyjmowana jest domyślna wartość true. | |
tweenSnap | Boolean | Włącza ("true") i wyłącza ("false") ustawienie przyciągania. Przyciąganie powoduje, że symbol jest powiązany ze ścieżką ruchu w swoim punkcie rejestracji. Ten atrybut nie ma wpływu na animację opisaną przez kod ActionScript, ponieważ język ActionScript nie umożliwia sterowania symbolami graficznymi. Ten atrybut XML jest używany tylko przez polecenia Kopiuj ruch i Wklej ruch w programie Adobe Flash Professional. W razie pominięcia tego atrybutu w kodzie XML przyjmowana jest domyślna wartość true. | |
x | Number | Współrzędna x punktu środkowego instancji symbolu w bieżącej klatce kluczowej. | |
y | Number | Współrzędna y punktu środkowego instancji symbolu w bieżącej klatce kluczowej. | |
scaleX | Number | Wyrażona procentowo skala pozioma, podana jako liczba dziesiętna, zwykle z przedziału od 0 do 1. Jest to często wartość z przedziału od 0 do 1, ale może być również większa od 1 lub mniejsza od 0. Można na przykład ustawić wartość scaleX na -1, aby przerzucić obiekt, lub na 3, aby powiększyć obiekt 3-krotnie w stosunku do oryginalnego rozmiaru. | |
scaleY | Number | Wyrażona procentowo skala pionowa, podana jako liczba dziesiętna, zwykle z przedziału od 0 do 1. Jest to często wartość z przedziału od 0 do 1, ale może być również większa od 1 lub mniejsza od 0. Można na przykład ustawić wartość scaleY na -1, aby przerzucić obiekt, lub na 3, aby powiększyć obiekt 3-krotnie w stosunku do oryginalnego rozmiaru. | |
skewX | Number | Kąt (w stopniach) ścięcia wzdłuż osi poziomej. Jeśli wartości skewX i skewY są równe, zostaną zastąpione przez atrybut rotation. | |
skewY | Number | Kąt (w stopniach) ścięcia wzdłuż osi pionowej. Jeśli wartości skewX i skewY są równe, zostaną zastąpione przez atrybut rotation. | |
rotation | Number | Kąt obrotu (w stopniach) w bieżącej klatce. | |
rotateDirection | String | Określa sposób obrotu animowanego elementu. Możliwe wartości to "auto", "none", "cw", "ccw". W razie pominięcia tego atrybutu w kodzie XML przyjmowana jest domyślna wartość "auto". | |
rotateTimes | Number | Określa, ile obrotów wykonuje, oprócz normalnego obrotu, animowany element między początkową klatką kluczową a następną klatką kluczową. W programie Adobe Flash Professional wartość ta musi być liczbą całkowitą nie mniejszą od 0, ale w klasach ruchu dozwolone są wartości ułamkowe. | |
tweenScale | Boolean | Wartość false zapobiega zmianie skali w trakcie animacji. W razie pominięcia tego atrybutu w kodzie XML przyjmowana jest domyślna wartość true. | |
cacheAsBitmap | Boolean | W razie pominięcia tego atrybutu w kodzie XML przyjmowana jest domyślna wartość false. | |
blendMode | String | Możliwe wartości to "normal", "layer", "multiply", "screen", "overlay", "hardlight", "lighten", "darken", "difference", "add", "subtract", "invert", "alpha" i "erase". W razie pominięcia tego atrybutu w kodzie XML przyjmowana jest domyślna wartość "normal". | |
orientToPath | Boolean | W razie pominięcia tego atrybutu w kodzie XML przyjmowana jest domyślna wartość false. | |
Color | Zawiera ustawienia modyfikacji kolorów. Instancja symbolu programu Flash może mieć przypisany jeden z pięciu trybów kolorów: none, alpha, tint, brightness oraz advanced. W przypadku braku przekształcenia (opcja none) znacznik Color jest pusty, co oznacza wygląd normalny. W przypadku przekształceń alfa (opcja alpha) należy ustawić atrybuty alphaMultiplier oraz alphaOffset. W przypadku przekształceń tinty (opcja tint) należy ustawić atrybuty tintColor oraz tintMultiplier.W przypadku transformacji brightness należy użyć atrybutu brightness.W przypadku transformacji advanced należy użyć atrybutów redMultiplier, greenMultiplier, blueMultiplier, alphaMultiplier, redOffset, greenOffset, blueOffset oraz alphaOffset. | ||
brightness | Number | Procentowa wartość stosowana do kanału jasności, z przedziału od -1 do 1, gdzie -1 oznacza pełną czerń, a 1 oznacza pełną biel. | |
tintColor | Wartość szesnastkowa | Szesnastkowa wartość koloru, który ma być zastosowany. | |
alphaMultiplier | Number | Procentowa wartość stosowana do kanału alpha, podana jako wartość dziesiętna z przedziału od 0 do 1. | |
redMultiplier | Number | Procentowa wartość koloru (ułamek dziesiętny między 0 a 1). | |
greenMultiplier | Number | Procentowa wartość koloru (ułamek dziesiętny między 0 a 1). | |
blueMultiplier | Number | Procentowa wartość koloru (ułamek dziesiętny między 0 a 1). | |
alphaMultiplier | Number | Wartość dziesiętna z przedziału od 0 do 1, reprezentująca wartość procentową, jaka ma być zastosowana do kanału przezroczystości alfa. | |
tintMultiplier | Number | Wartość dziesiętna z przedziału od 0 do 1, reprezentująca wartość procentową, jaka ma być zastosowana do wartości tintColor. | |
redOffset | Number | Liczba z zakresu od –255 do 255 dodawana do wyniku mnożenia wartości kanału czerwieni przez wartość redMultiplier. | |
greenOffset | Number | Liczba z zakresu od –255 do 255 dodawana do wyniku mnożenia wartości kanału zieleni przez wartość greenMultiplier. | |
blueOffset | Number | Liczba z zakresu od –255 do 255 dodawana do wyniku mnożenia wartości kanału koloru niebieskiego przez wartość blueMultiplier. | |
alphaOffset | Number | Liczba z zakresu od -255 do 255 dodawana do wyniku mnożenia wartości kanału alfpha przez wartość alphaMultiplier. | |
tweens | Zawiera ustawienia modyfikacji krzywej dynamiki. | ||
SimpleEase | Definiuje krzywą dynamiki o właściwościach niezmiennych przez cały czas trwania animacji ruchu. | ||
ease | Number | Wartość zmiany dynamiki, jaka ma być stosowana do wszystkich właściwości animacji ruchu. Atrybut ease to wartość procentowa z przedziału od -1 (100% przyspieszenia) do 1 (100% opóźnienia). Wartość domyślna 0 oznacza, że animacja odbywa się ze stałą szybkością, bez przyspieszania ani opóźniania. | |
target | Number | Po wywołaniu poleceń Kopiuj ruch i Wklej ruch w programie Adobe Flash Professional narzędzie do tworzenia treści generuje kod XML, który nie zawiera atrybutu target elementu SimpleEase, ponieważ program Flash Professional przyjmuje tę samą wartość dla wszystkich właściwości krzywej dynamiki. Jednak klasy języka ActionScript 3.0 umożliwiają jednoczesne stosowanie różnych wartości SimpleEase do poszczególnych właściwości. Możliwe wartości atrybutu target są takie same, jak wartości atrybutu CustomEase: "position", "scale", "rotation", "color", "filters", "x", "y", "scaleX", "scaleY", "skewX" i "skewY". | |
CustomEase | Definiuje niestandardową krzywą dynamiki złożoną z krzywych Beziera trzeciego stopnia. Krzywą można zastosować do wszystkich właściwości naraz lub można zdefiniować różne krzywe dla różnych właściwości. Więcej informacji o krzywych reprezentujących niestandardowe właściwości zmiany dynamiki zawiera opis klasy CustomEase. | ||
target | Number | Właściwość, której przypisywana jest wartość niestandardowa. Po wywołaniu poleceń Kopiuj ruch i Wklej ruch w programie Adobe Flash Professional narzędzie do tworzenia treści może wygenerować następujące wartości atrybutu target: "position", "scale", "rotation", "color", "filters". Klasy języka ActionScript 3.0 służące do sterowania ruchem zapewniają jeszcze większą elastyczność i pozwalają na definiowanie odrębnych krzywych dla właściwości: "x", "y", "scaleX", "scaleY", "skewX" oraz "skewY". Jeśli atrybut "target" nie zostanie uwzględniony w kodzie XML, wszystkie zmiany dynamiki dotyczą wszystkich tych właściwości łącznie. Uwaga: W kodzie XML nie występuje pierwszy i ostatni punkt niestandardowej krzywej dynamiki. Pierwszy punkt musi mieć zawsze współrzędne (0, 0) (wartość początkowa animowanej właściwości), a ostatni punkt musi mieć zawsze współrzędne (1, 1) (wartość końcowa animowanej właściwości). Aby skrócić kod i uniknąć potencjalnych błędów, wartości tych nie uwzględnia się w kodzie XML i są one uznawane za zdefiniowane niejawnie. | |
BezierControl | Punkt umieszczony względem krzywej, będący elementem jej definicji. | ||
x | Number | Współrzędna x punktu definiującego krzywą. | |
y | Number | Współrzędna y punktu definiującego krzywą. | |
BezierNode | Punkt umieszczony na krzywej, będący elementem jej definicji. | ||
x | Number | Współrzędna x punktu na krzywej. | |
y | Number | Współrzędna y punktu na krzywej. | |
filters | Definiuje obiekt z pakietu flash.filters, który ma być używany jako element (na przykład: filters:GlowFilter). Możliwe jest dodawanie atrybutów odpowiadających właściwościom określonego obiektu flash.filters. Na przykład: <filters:DropShadowFilter quality="1" inner="false" knockout="false" hideObject="false" distance="0" angle="45" color="0x000000" alpha="1" blurX="0" blurY="0" strength="0" />. Informacje zawiera opis pakietu flash.filters. |
Poniżej zamieszczono przykładowy kod ActionScript z wewnętrznym kodem XML opisującym animację ruchu instancji klipu filmowego moveShape dla symbolu myShape; animacja, która trwa dziesięć klatek, uwzględnia obroty, przesunięcia, niestandardową krzywą dynamiki i zmiany wartości alfa:
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, 12:23 PM Z