Avatar billede donslund Nybegynder
26. maj 2008 - 19:01 Der er 4 kommentarer og
1 løsning

Hente 6 ud af x antal movieClips.

Jeg har en XML-fil hvor ud fra jeg genererer x antal movieclips.
Disse clips vil jeg gerne hente 6 ad gangen ind til alle er hentet.
Men jeg kan ikke lige komme på de rigtige tanker.

setInterval(flipEvents, 30);

var cur:int = 0;
var whatMC:String;

function flipEvents() {
//trace(eventArray[cur]);
    TweenMax.sequence(eventArray[cur], [{time:2, alpha:1}, {time:12, y:"0"}, {time:2, alpha:0}]);
    if(cur<eventArray.length){
        cur++;
    } else {
        cur=0;
    }
}

Dette "flipper" min mc's med et interval på 0,3 sekunder. Men hvordan får jeg den til kun at hente 6 ad gangen? Det må være en setinterval der styrer en anden setinterval.

Håber nogen kan guide mig.
Avatar billede Slettet bruger
11. juni 2008 - 00:43 #1
Jeps - du skal enten bruge to intervaller eller indlæse de seks ad gangen på én gang (og så vente på næste seks, som du skriver).

Prøv dette (ikke testet herfra):

setInterval(nextEvent, 30);
setInterval(nextEventWave, 1000); // Eller hvor længe der nu skal gå fra starten af én wave til starten af den næste

var cur:int = 0;
var whatMC:String;

function nextEvent() {
    TweenMax.sequence(eventArray[cur], [{time:2, alpha:1}, {time:12, y:"0"}, {time:2, alpha:0}]);
    if(cur<eventArray.length){
        cur++;
    } else {
        cur=0;
    }
}
Avatar billede Slettet bruger
11. juni 2008 - 00:49 #2
Argh! Den sendte pludselig... Hm. Jeg prøver igen!


setInterval(nextEventWave, 1000); // Eller hvor længe der nu skal gå fra starten af én wave til starten af den næste

var cur:int = 0;
var whatMC:String;
var eventsInCurrentWave:int = 0;

function nextWave() {
    eventsInCurrentWave++;
    nextEvent();
    setInterval(nextEvent, 30);
}

function nextEvent() {
    eventsInCurrentWave++;
    TweenMax.sequence(eventArray[cur], [{time:2, alpha:1}, {time:12, y:"0"}, {time:2, alpha:0}]);
    if(cur<eventArray.length && eventsInCurrentWave%6!==0){ // Ændres alt efter hvor mange events der skal være per wave
        cur++;
    } else {
        cur=0;
        eventsInCurrentWave=0;
    }
}


Ovenstående kode er ikke optimeret - i den forstand at du teoretisk set kan spare på proc og RAM samt gøre scriptet pænere ved at omformulere den... Men det er ikke et must.
Avatar billede Slettet bruger
11. juni 2008 - 00:51 #3
PS: Husk at stoppe dine intervaller igen :) nextEvent skal i mit tilfælde stoppes således (kan ikke huske koden, så har bare skrevet en kommentar):

...
    } else {
        cur=0;
        eventsInCurrentWave=0;
        // STOOOP!!! FFS!!! R U TEH CRAZY MUTTAHFUKKA STOP OR I KILL U!!!111!1!!1! Eller noget i den stil.
    }
...
Avatar billede donslund Nybegynder
11. juni 2008 - 19:32 #4
Ja, jeg skalæ huske at stoppe mine intervaller.

Smid et svar.
Avatar billede Slettet bruger
11. juni 2008 - 23:31 #5
Skønt :) Her er svaret.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester