[ protech_v2 @ 16.06.2007. 22:30 ] @
Znaci SATE sam izgubio, skraceno:

Code:

games_mc.item0.btn.onRelease = function() {getURL(urls[0], _blank);};
games_mc.item1.btn.onRelease = function() {getURL(urls[1], _blank);};


radi, dok nakon

Code:

for (var i=0; i<items.length; i++) {
    games_mc["item" + i].btn.onRelease =  function() {getURL(urls[i], _blank);};
}


svaki btn otvara potpuno isti URL. Zackoljica je u izgleda (meni jedino objasnjenje) tome sto ako je definicija funkcije ista u samom kodu (bez obzira na "i" parametar koji je razliciti u svakoj iteraciji), sve instance ce dobiti tacno istu funkciju. Odnosno, u svakoj iteraciji petlje ce sve instance dobiti funkciju sa trenutnom vrednoscu parametra i, tako da na kraju sve imaju funkciju koja otvara poslednji URL niza urls...

Samo ako se bas definicija razlikuje (u prvom primeru su razliciti indexi niza), onda i instance dobijaju razlicite funkcije iako bi to trebalo da je potpuno odvojeno po svakoj logici?

Strasno!

(Btw, probao sam i da se svaka instanca "btn" objekta zove razlicito, pomislivsi da je mozda taj "btn" isti za sve "item"-e, ali i dalje potpuno isto, definitivno se problem manifestuje kako sam opisao)
[ gordon_beneth @ 16.06.2007. 22:54 ] @
Treba da svakom mc-u dodeliš url varijablu, probaj ovako
Code:

for (var i=0; i<items.length; i++) {
    games_mc["item" + i].url=urls[i]
    games_mc["item" + i].btn.onRelease =  function() {getURL(this.url, _blank);};
}
[ protech_v2 @ 16.06.2007. 23:00 ] @
Radi :)))))))))))))))))))))))))

Moze poblize objasnjenje problema, ako te ne mrzi? :)

Hvala puno!

[ gordon_beneth @ 17.06.2007. 00:00 ] @
U prvom kodu si kao argument getURL() metodi dodeljivao konstante (0,1,2...)
U drugom si dodelio promenljivu "i", koja nakon izvršenja petlje ostaje na poslednjoj vrednosti, pa ti zato svako dugme otvara istu (poslednju) stranicu.
Ovo je i mene svojevremeno zbunjivalo, ali kad bolje razmisliš u stvari je sasvim logično ;-)