Opisywanie animacji

Flash Player 9 i nowsze wersje, Adobe AIR 1.0 i nowsze wersje, wymagany Flash CS3 lub nowsza wersja

Metoda addPropertyArray() klasy MotionBase dodaje tablicę wartości, które opisują poszczególne animowane właściwości.

Tablica może zawierać jeden element dla każdej klatki kluczowej w animacji ruchu. Często niektóre z tych tablic zawierają mniej elementów niż całkowita liczba klatek kluczowych w animacji ruchu. Taka sytuacja występuje wówczas, gdy ostatnia wartość w tablicy nie zmienia się dla pozostałych klatek.

Jeśli długość argumentu tablicy jest większa niż właściwość duration obiektu Motion, wówczas metoda addPropertyArray() zmienia odpowiednio właściwość duration . Nie dodaje klatek kluczowych dla właściwości, które zostały poprzednio dodane. Nowo dodane klatki kluczowe są zachowane dla dodatkowych klatek animacji.

Właściwości x i y obiektu Motion opisują zmiany pozycji obiektu animowanego w miarę przebiegu animacji. Te współrzędne są wartościami, których zmiana jest najbardziej prawdopodobna w każdej klatce kluczowej, pod warunkiem że pozycja obiektu wyświetlanego ulega zmianie. Za pomocą metody addPropertyArray() można dodawać dodatkowe właściwości ruchu. Przykład: jeśli dochodzi do zmiany wielkości animowanego obiektu, należy dodać wartości scaleX i scaleY . Jeśli obiekt jest pochylany, należy dodać właściwości scewX i skewY . Jeśli jest obracany, należy dodać właściwość rotationConcat .

Metoda addPropertyArray() służy do definiowania następujących właściwości animacji:

x

położenie w poziomie punktu transformacji obiektu w układzie współrzędnych jego obiektu nadrzędnego

y

położenie w pionie punktu transformacji obiektu w układzie współrzędnych jego obiektu nadrzędnego

z

położenie głębokości (na osi z) punktu transformacji obiektu w układzie współrzędnych jego obiektu nadrzędnego

scaleX

skala pozioma (jako procent) obiektu względem punktu transformacji

scaleY

skala pionowa (jako procent) obiektu względem punktu transformacji

skewX

kąt pochylenia obiektu w poziomie — kąt jest podawany w stopniach i wyznaczany względem punktu transformacji

skewY

kąt pochylenia obiektu w pionie — kąt jest podawany w stopniach i wyznaczany względem punktu transformacji

rotationX

obrót obiektu wokół osi x z orientacji początkowej

rotationY

obrót obiektu wokół osi y z orientacji początkowej

rotationConcat

wartości obrotu (oś z) obiektu w ruchu względem poprzedniej orientacji, wyznaczane względem punktu transformacji

useRotationConcat

jeśli ta właściwość jest ustawiona, powoduje obrót obiektu docelowego, gdy metoda addPropertyArray() określa dane dla ruchu

blendMode

wartość klasy BlendMode określająca mieszanie kolorów obiektu z kolorami obiektów graficznych, które znajdują się pod nim

matrix3D

właściwość matrix3D, jeśli istnieje dla klatki kluczowej; używana dla animacji 3D; jeśli jest używana, wszystkie poprzednie właściwości transformacji są ignorowane

rotationZ

obrót obiektu wokół osi z określony w stopniach, od orientacji oryginalnej względem nadrzędnego kontenera 3D; używana w przypadku animacji 3D zamiast właściwości rotationConcat

Właściwości, jakie zostały dodane w skrypcie wygenerowanym automatycznie, są uzależnione od właściwości, jakie zostały przypisane do animacji ruchu w programie Flash. W przypadku dostosowywania własnej wersji skryptu można dodawać, usuwać i modyfikować niektóre z tych właściwości.

Poniższy kod przypisuje wartości do właściwości animacji ruchu o nazwie __motion_Wheel. W tym przypadku animowany obiekt wyświetlany nie zmienia położenia, ale obraca się w miejscu przez 29 klatek animacji ruchu. Wartości przypisane do tablicy rotationConcat definiują rotację. Wartości innych właściwości w tej animacji ruchu nie ulegają zmianie.

__motion_Wheel = new Motion(); 
__motion_Wheel.duration = 29; 
__motion_Wheel.addPropertyArray("x", [0]); 
__motion_Wheel.addPropertyArray("y", [0]); 
__motion_Wheel.addPropertyArray("scaleX", [1.00]); 
__motion_Wheel.addPropertyArray("scaleY", [1.00]); 
__motion_Wheel.addPropertyArray("skewX", [0]); 
__motion_Wheel.addPropertyArray("skewY", [0]); 
__motion_Wheel.addPropertyArray("rotationConcat", 
    [ 
        0,-13.2143,-26.4285,-39.6428,-52.8571,-66.0714,-79.2857,-92.4999,-105.714, 
        -118.929,-132.143,-145.357,-158.571,-171.786,-185,-198.214,-211.429,-224.643, 
        -237.857,-251.071,-264.286,-277.5,-290.714,-303.929,-317.143,-330.357, 
        -343.571,-356.786,-370 
    ] 
); 
__motion_Wheel.addPropertyArray("blendMode", ["normal"]); 

W kolejnym przykładzie obiekt wyświetlany o nazwie Leaf_1 porusza się na stole montażowym. Tablice jego właściwości x i y zawierają różne wartości dla każdych 100 klatek animacji. Ponadto podczas ruchu na stole montażowym obiekt obraca się wokół osi z . Elementy w tablicy właściwości rotationZ określają rotację.

__motion_Leaf_1 = new MotionBase(); 
__motion_Leaf_1.duration = 100; 
__motion_Symbol1_4.addPropertyArray("y", 
    [     
        0,5.91999,11.84,17.76,23.68,29.6,35.52,41.44,47.36,53.28,59.2,65.12,71.04, 
        76.96,82.88,88.8,94.72,100.64,106.56,112.48,118.4,124.32,130.24,136.16,142.08, 
        148,150.455,152.909,155.364,157.818,160.273,162.727,165.182,167.636,170.091, 
        172.545,175,177.455,179.909,182.364,184.818,187.273,189.727,192.182,194.636, 
        197.091,199.545,202,207.433,212.865,218.298,223.73,229.163,234.596,240.028, 
        245.461,250.893,256.326,261.759,267.191,272.624,278.057,283.489, 
        288.922,294.354,299.787,305.22,310.652,316.085,321.517,326.95,330.475,334, 
        337.525,341.05,344.575,348.1,351.625,355.15,358.675,362.2,365.725,369.25, 
        372.775,376.3,379.825,383.35,386.875,390.4,393.925,397.45,400.975,404.5, 
        407.5,410.5,413.5,416.5,419.5,422.5,425.5 
    ] 
); 
__motion_Symbol1_4.addPropertyArray("scaleX", [1.00]); 
__motion_Symbol1_4.addPropertyArray("scaleY", [1.00]); 
__motion_Symbol1_4.addPropertyArray("skewX", [0]); 
__motion_Symbol1_4.addPropertyArray("skewY", [0]); 
__motion_Symbol1_4.addPropertyArray("z", 
    [ 
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 
    ] 
); 
__motion_Symbol1_4.addPropertyArray("rotationX", [64.0361]); 
__motion_Symbol1_4.addPropertyArray("rotationY", [41.9578]); 
__motion_Symbol1_4.addPropertyArray("rotationZ", 
    [ 
        -18.0336,-17.5536,-17.0736,-16.5936,-16.1136,-15.6336,-15.1536,-14.6736, 
        -14.1936,-13.7136,-13.2336,-12.7536,-12.2736,-11.7936,-11.3136,-10.8336, 
        -10.3536,-9.8736,-9.3936,-8.9136,-8.4336,-7.9536,-7.4736,-6.9936,-6.5136, 
        -6.0336,-7.21542,-8.39723,-9.57905,-10.7609,-11.9427,-13.1245,-14.3063, 
        -15.4881,-16.67,-17.8518,-19.0336,-20.2154,-21.3972,-22.5791,-23.7609, 
        -24.9427,-26.1245,-27.3063,-28.4881,-29.67,-30.8518,-32.0336,-31.0771, 
        -30.1206,-29.164,-28.2075,-27.251,-26.2945,-25.338,-24.3814,-23.4249, 
        -22.4684,-21.5119,-20.5553,-19.5988,-18.6423,-17.6858,-16.7293,-15.7727 
        -14.8162,-13.8597,-12.9032,-11.9466,-10.9901,-10.0336,-10.9427,-11.8518, 
        -12.7609,-13.67,-14.5791,-15.4881,-16.3972,-17.3063,-18.2154,-19.1245, 
        -20.0336,-20.9427,-21.8518,-22.7609,-23.67,-24.5791,-25.4881,-26.3972, 
        -27.3063,-28.2154,-29.1245,-30.0336,-28.3193,-26.605,-24.8907,-23.1765, 
        -21.4622,-19.7479,-18.0336 
    ] 
); 
__motion_Symbol1_4.addPropertyArray("blendMode", ["normal"]);