Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[AS2] Naizmenicno pustanje MCjeva

[es] :: Flash :: [AS2] Naizmenicno pustanje MCjeva

[ Pregleda: 1626 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

_Mrgud_
Uros Todorovic
Novi Beograd

Član broj: 129681
Poruke: 21
*.vektor.net.



Profil

icon [AS2] Naizmenicno pustanje MCjeva30.11.2007. u 01:46 - pre 200 meseci
Problem je sledeći:

Imam četiri MCja, svaki od po 35 frejmova. U frejmovima 1-17 je motion tween njihovog "izlazaska" na stage, frejm 18 je keyframe u kojem oni "čuče" u sredini pozornice, ostatak je njihov simetičan povratak u "nevidljivo" stanje - izlazak sa pozornice. U frejmu broj 1 svakog MCja je stop(), kao i u frejmu 18 svakog klipa, a oni se pokreću klikom na vidljivi deo klipa.

Dakle: vidi se po parče svakog MCja u početnom trenutku. Jednim klikom se pokreće animacija njihovog izlaska. Narednim klikom MC se opet sakriva.

Ideja je da je u svakom trenutku potpuno vidljiv samo jedan MC.

To samo po sebi nije problem i uspeo sam da izvedem (if (mcPrvi._currentframe = 18) mcPrvi.play(); itd. pre pokretanja svakog mcja), ali problem nastaje ako korisnik klikne na neki drugi klip dok se prvi pokreće ka centru pozornice. Tada ovaj pokušaj sa mc.play() nema efekta jer se mc već kotrlja, i oba mcja zauzimaju pozornicu. Nije problem ni "divljački" oterati neki već pokrenut klip sa pozornice u frejm 1 tako što bi umesto mc.play() išlo mc.goToAndStop(1), ali želim da svaki povratak u frejm 1 bude animiran.

Moj naredni pokušaj je bio da se implementira neka vrsta wait funkcije, na setInterval i clearInterval principu (sledi algoritam samo za jedan mc, za ostale me mrzi da kucam):

Code:

function wait() {
        clearInterval(intID);
}

on(release) {
if  (_root.mcPrvi._currentframe != 1)
        if (_root.mcPrvi._currentframe < 18) {
        // ne interesuje me sta se dogadja u ostalim slucajevima: za =18 opet cu ga zatvoriti narednom naredbom, ako je >18 vec je krenuo da nestaje
                intID = setInterval(wait, 1000);
        // posto je framerate 18fps cekam celih 18 frejmova da bih bio siguran da se mcPrvi potpuno prikazao na pozornici
                _root.mcPrvi.play();
        // pustam ga dalje, da lepo nestane sa pozornice
        }
// sklonio sam prvi MC sa pozornice, pustam drugi MC:
this.play();
}


E, sad... Šta tu ne valja i zašto ne želi da radi? :)

Ili, možda, neka bolja ideja?
 
Odgovor na temu

[es] :: Flash :: [AS2] Naizmenicno pustanje MCjeva

[ Pregleda: 1626 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.