PDA

Volledige versie bekijken : Attach movie en arrays


Rikkje
%Europe/Berlin %674 %2007, 17:11
Beste flash gebruikers ik heb zoals gewoonlijk weer een klein probleempje..

Ik ben met een fotoalbum bezig die via een mysql database werkt..

Nu is de bedoeling dat als iemand op een catagorie klikt dat de foto's onderin geladen worden en dat de foto mc's ook meteen in een array gepropt worden.

Dit heb ik gedaan als volgt:


plaatjesXML.onLoad = function() {
Foto_Array = this.firstChild.childNodes;

for(i = 0; i < Foto_Array.length; i++){

var fotoContentBox = miniFotoHolder.attachMovie("foto","foto" + i,100 + i);

fotoLoader.loadClip("***LINK***/" + Foto_Array[i].attributes.link,fotoContentBox.fotoHolder);

fotoContentBox._y = 0;
fotoContentBox._x = (i * 105) + (i * 5);

fotoContentBox.link = Foto_Array[i].attributes.link;

fotoContentBox.btn.onRelease = function(){

showfoto(this._parent.link);

}

Foto_MC_Array.push(fotoContentBox);

}

}


Dus met Foto_MC_Array.push zouden de movies in de array moeten komen.

Nu wil ik zodra iemand op een andere catagorie drukt dat alle foto's worden verwijderd doormiddel van de array doorlopen en dan verwijderen.

Dat doe ik alsvolgt:


contentBox.btn.onRelease = function(){

trace("Geklikt");

trace("Aantal arrays: " + Foto_MC_Array.length);

for(i = 0; i < Foto_MC_Array.length; i++){

trace(Foto_MC_Array[i] + " verwijderd..");

removeMovieClip(Foto_MC_Array[i]);

Foto_MC_Array.splice(i,1);

}

Catagorie.text = this._parent.title;

getFotos(this._parent.id);

}


Ik zou denken dat het met dit script eerst alle fotos zou verwijderen en dan nieuwe inlaad.

Maar dit werkt dus niet want ik zie in mijn output bijv staan:


Geklikt
Aantal arrays: 3
_level0.contentMC.FotoMov.miniFotoHolder.foto0 verwijderd..
_level0.contentMC.FotoMov.miniFotoHolder.foto2 verwijderd..


Dus hij ziet 3 array's maar verwijderd er maar 2 :S hoe kan dit?

Erwinzzz
%Europe/Berlin %680 %2007, 17:19
Dat komt omdat je ze er uit verwijderd, na de eerste herhaling is de lengte dus al weer 2, en i = 1. Daarna zal er dus nog maar 1 herhaling plaatsvinden. Zorg er dus bijvoorbeeld voor dat hij daarna pas uit de array word gehaald, of dat je ze allmaal tegelijk eruit haalt.

Het lijkt me zowieso vrij onnodig met een forloop ALLE waardes uit een array te halen, je kan hem ook gewoon in één keer clearen ;)

Rikkje
%Europe/Berlin %684 %2007, 17:25
Ja haha zie je wel weer zon kleine fout he!

Hartstikke bedankt het werkt weer! dit was de oplossing dus:


contentBox.btn.onRelease = function(){

trace("Geklikt");

trace("Aantal arrays: " + Foto_MC_Array.length);

for(i = 0; i < Foto_MC_Array.length; i++){

trace(Foto_MC_Array[i] + " verwijderd..");

removeMovieClip(Foto_MC_Array[i]);

}

Foto_MC_Array.splice(0,Foto_MC_Array.length);

Catagorie.text = this._parent.title;

getFotos(this._parent.id);

}


THNX MAN!