webForumDet fria alternativet

onLoadInit as2 problem?

4 svar · 533 visningar · startad av krokodilen

krokodilenMedlem sedan juni 200776 inlägg
#1

Sitter med en scrollpanel (scroll-funktionen är redan fixad, så den är inte med här) där ska jag ladda in bilder oavsett bredd efter varandra. Tidigare har jag bara jobbat med bilder i samma size. Men så sprang jag på denna kod på ett forum, men just nu laddas alla bilder på varann, samt att den trace'ar inte korrekt. Tror att det är onLoadInit som krånglar och det är inget jag suttit med tidigare, så det är svårt för mig att hitta felet.

Någon som kan hjälpa mig att lösa problemet, som kanske har lite mer koll på läget?

(som ni märker ska det bara ladda in thumbs, inget mer, och inga mouseEvents ska finnas i fall ni undrar)

Tack på förhand!

var x:XML = new XML ();//Define XML Object
x.ignoreWhite = true;

var fullURL:Array = new Array;//Array of full size image urls
var thumbX:Number = 25;//Initial offset of _x for first thumbnail

var tmcl:MovieClipLoader = new MovieClipLoader();
var tmclL:Object = new Object();
tmcl.addListener(tmclL);
var counter:Number = 0;//** NEW COUNTER VARIABLE

tmclL.onLoadInit = function(target:MovieClip) {
    trace(target.holder._width);//This should trace correctly
    target._x = thumbX;
    //target._y = 0;   
      
    thumbX += (target.holder._width + 10);
    //theLoaderText.text = "";
    counter++;//** Increment counter variable
    if (counter < fullURL.length) {//** TEST for end of array
      createThumb(counter);//**I it's still in the array, create another thumb
    }
}

x.onLoad = function(){ //Function runs after XML is loaded
    var photos:Array = this.firstChild.childNodes;
   for (i=0;i<photos.length;i++) {
      fullURL.push('bilder/modell/'+photos[i].attributes.pic);
   }
   createThumb(counter);//**Only called once, AFTER the arrays are fully loaded
}

function createThumb(num:Number) {
    t =  _root.main_mc.mc2.mc3.attachMovie("b","b"+num,num);
    tmcl.loadClip(fullURL[num], t.holder);
    t.numb = num;//** THIS is where you set the numb property
}
      
x.load ("bilder/xml/modell.xml");// path to XML file
foppaMedlem sedan sep. 200318 inlägg
#2

Vad skriver din trace ut?

trace(target.holder._width);
krokodilenMedlem sedan juni 200776 inlägg
#3

Just nu bara "undefined". Jag tycker ju att den borde skriva ut bredden på föregående bild eller liknande, men jag får som sagt inte ihop vad den funktionen ska göra, vet bara att den inte fungerar korrekt eftersom den nu skriver ut "undefined" x antalet noder i xml'en.

Några funderingar vad som går snett här?

foppaMedlem sedan sep. 200318 inlägg
#4

Jag kan inte se att du skapar 'holder' någonstans. Testa istället:

trace(target._width);
krokodilenMedlem sedan juni 200776 inlägg
#5

Haha, stämde bra det! Såg inte skogen för alla träden. Tog bort båda "holder" i onLoadInit-funktionen. Funkar nu klockrent. Tack!

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)