ugrás a tartalomhoz

Flash : Animáció probléma

whiteman0524 · 2011. Júl. 3. (V), 16.04
Sziasztok!

Egy kis segítséget szeretnék kérni Flash ügyben. Egy képváltó animáción dolgozok, ami felbontja a képet kis 50x50-es négyzetekre (Kis Bitmap-eket gyárt belőle) és egyenként pörgeti őket, amikor pedig átfordulnak megjelenik a következő kép megfelelő képkockája.

Az eredeti képből gyártott kis 50x50-es Bitmap képkockák, bele vannak téve egy-egy Sprite-ba, amik szigorúan és pontosan egymás mellé és alá vannak pozicionálva, így olyan mint ha egy sima kép lenne a sok kis Sprite és bennük az 50x50-es Bitmap-ek. A Sprite-ok azért kellenek, mert nem közvetlenül a Bitmap-eket animálom hanem a konténert amiben vannak vagyis a Sprite-ot, így amikor átfordul egy Sprite csak a benne levő Bitmap-ot kell kicserélni a következő megjelenítendő kép megfelelő képkockájára és fordulhat megint tovább a következő képnél. A Sprite-ok rotationY attribútumát animálom, mindig +180 fokkal egy-egy új képnél. A Sprite-okban a Bitmap-ek -25, és -25 képponttal vannak eltolva x és y tengely szerint, azért mert a középpontjuknál fogva forgatom őket, illetve pontosabban a Sprite-ot, de ugye annak meg 0,0 a regisztrációs pontja ami mentén a forgatás majd történik.

A problémám a következő, és megpróbálom képekkel is illusztrálni :

Amikor az animáció még nem indult el, minden rendben van és hajszál pontosan figyelnek a kis képkockák egymás mellett, mintha egy sima képet nézne az ember. Ekkor valahogy így fest a dolog. (Jah igen a képeknek tükörképük is van amint látható. Ők is animálódnak a képpel együtt és fontos hogy ők átlátszóak!) Amikor azonban lefut az első animáció, és átpördülnek az egyes képkockák, akkor pedig ez fogad. A képen nem lehet észrevenni, a változást, azért mert az egyes képkockák nem átlátszóak, de ott is ugyan az a probléma ami a tükörképen nagyon jól látható, tehát hogy kicsit összeérnek az egyes képkockák animáció után. Pedig a forgatási pont tökéletesen középen van.

Szóval meg szeretném oldani, hogy ne legyenek ott azok a ronda csíkok a képkockák között a tükörképnél, és animáció után is jól illeszkedjenek.

Még egy fontos dolog : TweelLite-ot használok az animációkhoz, nem tudom hogy ez esetleg számít-e ?

A segítséget előre is köszönöm szépen mindenikek.
 
1

konténer

mdesign · 2011. Júl. 4. (H), 14.52
A konténer is egész pixelekre lett elhelyezve?
Próbáltad már páratlan szélesség/magassággal is? (49x49)
3

Igen

whiteman0524 · 2011. Júl. 5. (K), 01.51
A konténer(ek) is ugyan úgy vannak elhelyezve pontosan egymás mellé illetve alá 50-50 pixelre. Kipróbáltam páratlan szélességekkel/magasságokkal is, de dettó ugyan az helyzet.

Sőt kipróbáltam hogy az összes közül csak egyetlen képkockát animálok, a többi marad mozdulatlan, és ugyan az a helyzet. Mihelyt megmozdul valami "elcsúszik" az összes képkocka pedig hozzájuk se nyúltam. Én nem értem az egészet...
2

3D

whiteman0524 · 2011. Júl. 5. (K), 01.44
Arra rájöttem azóta hogy ez az egész probléma csak 3D transzformációknál áll fent. Tehát ha mondjuk alpha-t tween-elek, vagy .rotation-t simán, akkor minden marad a helyén és semmi probléma. Csak 3D transzformációknál csúszik össze kicsit minden képkocka.

Teszteltem, és mindegyik képkocka közé raktam 1-1 pixel távolságot hogy jobban szemléltethető legyen a probléma. Ezen a képen a .rotation attribútum szerinti forgatás látható. Az egyes képkockák forgatási sorrendje a jobb felső sarokból a bal alsó fele tart megfelelő késleltetéssel közöttük. Kékkel jelöltem a bal alsó sarokban a forgatás előtti állapotot, és szintén kékkel a jobb felső sarokban a forgatás utáni állapotot. Látható ebben az esetben nincsen probléma, a térközök megmaradtak az egyes képkockák között.

A rotationY attribútum esetében (de a probléma ugyan úgy jelentkezik rotationX és Z esetében is) a kezdeti helyzet látható újfent ezen a képen. Y tengely mentén történő rotáció után/közben pedig így fest a dolog. Kékkel jelöltem az animáció előtti, és pirossal az az utáni állapotot. Látható, hogy mintha mindegyik képkocka megnyúlna X és Y tengely mentén is, pedig én hozzá se nyúltam semmihez csupán a rotationY attribútumot tween-elem. Nah erre varrjon gombot valaki... :D
4

Megoldva

whiteman0524 · 2011. Júl. 5. (K), 23.00
Addig addig túrtam a netet, amíg ráakadtam erre a bejegyzésre. A legvégén van a problémám oka, és a megoldás is. :)