SWiSH Forum
Forum użytkowników programów SWiSH

SWiSH Max - skok w timeline

mobby - Wto 18 Gru, 2007 22:23
Temat postu: skok w timeline
witam,

zrobilem baner ktory w time line ma swoje efekty i jest dosc dlugi czasowo. chcialbym zastosowac mozliwosc skoku do danej wartosci w timeline zeby po prostu nie czekac az dana animacji sie pojawi, oczywiscie na zasadzie button'a. skokow ma byc 5 do przodu jak i do tylu. jak najrozsadniej napisac taki kod?

Pozdrawiam

Qiub - Wto 18 Gru, 2007 23:50

on (press)
{
obiekt_do ktorego ma skoczyc.gotoAndPlay(1);
}

mobby - Sro 19 Gru, 2007 10:14

no tak ale to chyba nie o to chodzilo. obiekt do ktorego ma skoczyc to ani sprite czy grupa tylko poprostu w timeline leca sobie animacje ktore przygotowalem, texty, move'y i cala reszta, wiec chcialbym zeby za kazdym kliknieciem na np znaczek strzalki skoczylo mi o kolejne wartosci w timeline a nie skoczylo np do obiektu (sprite) i startowalo od pozycji 1, mowa tu o Twoim przykladzie.
7pepo7 - Sro 19 Gru, 2007 11:14

No to właśnie tak ja Qiub pisze. Tylko może napisał tak nie do końca jasno.
Kod:
on(press) {
     obiekt_dla_ktorego_lini_czasu_ma_to_zadzialac.gotoAndPlay(numer_klatki);
}

Jeżeli wszystkie twoje animacje robione są odrazu na scenie (obiekty animowane nie są grupowane) to muszisz gotoAndPlay wywołać dla sceny głównej (_root), czyli np.
Kod:
on(press) {
     _root.gotoAndPlay(60);
}

Jeżeli całą animację zgrupowałeś np w duszku o nazwie "animacja" to musisz odniesc się do jego lini czasu, np.
Kod:
on(press) {
     _root.animacja.gotoAndPlay(60);
}
Teraz jeszcze rozwine twoj problem. Chodzi o to ze mozesz to zrobic na dwa sposoby.
1. Dzielisz sobie animacje na np. 5 scen i wstawiasz 5 przyciskow i w każdym skok do konkretnej klatki
2. Znowu dzielisz na 5 scen ale wstawiasz tylko 2 przyciski - poprzedni i nastepny, wtedy przy kliknieciu zanim skoczysz do klatki musisz sprawdzic w której jesteś aktualnie klatce i wybrać, w przypadku przycisku następny, najblizszą następną scenę animacji, a w przypadku przycisku poprzedni, najbliższą poprzednią scenę animacji. Np, dla animacji 80 klatkowej z 4 scenami (nie scenami swishmaxa tylko podziałami animacji).:

w obiekcie animacji (zakladamy ze glowna scena):
Kod:
onFrame (1) {
    scena = 1;
}
onFrame (20) {
    scena = 2;
}
onFrame (40) {
    scena = 3;
}
onFrame (60) {
    scena = 4;
}

w przycisku wstecz:
Kod:
on (press) {
    if (_root.scena == 1) {
        _root.gotoAndPlay(60);
    }
    else if (_root.scena == 2) {
        _root.gotoAndPlay(1);
    }
    else if (_root.scena == 3) {
        _root.gotoAndPlay(20);
    }
    else if (_root.scena == 4) {
        _root.gotoAndPlay(40);
    }
}

a w przycisku dalej:
Kod:
on (press) {
    if (_root.scena == 1) {
        _root.gotoAndPlay(20);
    }
    else if (_root.scena == 2) {
        _root.gotoAndPlay(40);
    }
    else if (_root.scena == 3) {
        _root.gotoAndPlay(60);
    }
    else if (_root.scena == 4) {
        _root.gotoAndPlay(1);
    }
}


Powered by phpBB modified by Przemo © 2003 phpBB Group