for-løkke og setInterval
Jeg har været ved at læse dette kapitel fra en bog fra "friends of ed": http://www.friendsofed.com/books/flash_mx_titles/fresh_flash/fresh_samplechapter.pdfKapitlet beskriver hvordan man vha setInterval kan omskrive en for-løkke, således at den bliver udført med intervaller.
Det vil jeg gerne have implementeret i min kode, men kan ikke helt greje den, -håber der er nogen der kan!
Min kode ser ud som følger:
onClipEvent (load) {
//initialisering af variabler
// Kassedimensioner (de kasser der indeholder billederne)
var box_height = 30;
var box_width = 40;
// Kolonnestart
var kolonne = 0;
// Hvor mange kasser er der plads til
var box_nr = 15;
// Hvor mange rækker skal der laves
var raekker = 5;
// Cellemellemrum
var x_box_margin = 1;
var y_box_margin = 1;
// Hvor starter kasserne
var x_offset;
var y_offset;
var i=0;
billedeXML = new XML();
billedeXML.ignoreWhite = true;
billedeXML.onLoad = function(success) {
if (success) {
billede = this.firstChild.childNodes;
//funktionen som jeg ikke kan få til at virke
function buildSomeStuff(i) {
if (i>box_nr)clearInterval(forInterval);
//Min for-løkke som virker
//for (i=0; i<box_nr; i++)
//{
// Hvis der er 5 kasser i en kolonne, skal den starte en ny kolonne
if (i%raekker == 0) {
x_offset = (kolonne*box_width)+(kolonne*x_box_margin)+x_box_margin;
y_offset = y_box_margin;
kolonne++;
}
billedet = _root.frame.attachMovie("attach_test", "attach"+i, i);
// Placerer attach_MC
billedet._x = x_offset;
billedet._y = y_offset;
//sålænge der er billeder nok skal den bare loade billeder ind i det attachede MC
if (i<billede.length) {
// Henter den eksterne billede og putter den ind i attach[x] MC
billedet.loadMovie("images/"+billede[i].attributes.url);
//trick så billerne ikke står og blævrer
billedet._alpha = 99;
//laver et tekstfelt til beskrivelsen
_root.frame.createTextField("beskrivelse"+i, i+100, 0,160,124,30);
_root.frame["beskrivelse"+i].text = billede[i].attributes.beskrivelse.toUpperCase();
_root.frame["beskrivelse"+i].textColor=0xB4B9AB;
format= new TextFormat();
format.font="kroeger 05_55";
format.size=8;
_root.frame["beskrivelse"+i].setTextFormat(format);
_root.frame["beskrivelse"+i]._visible = false;
//Henter effekten som skal ligge ovenpå
onmouseover = _root.frame.attachMovie("mouseover", "onmouseover"+i, i+billede.length+30);
// Placerer onmouseovereffekten
onmouseover._x = x_offset;
onmouseover._y = y_offset;
//sætter actions på onmouseover
onmouseover.onRelease = function() {
getURL("http://www.jonasfunk.net", "_blank");
};
onmouseover.onRollOver = function() {
this.gotoAndPlay("start");
tal1=this._name.charAt(11);
tal2=this._name.charAt(12);
_root.frame["beskrivelse"+tal1+tal2]._visible = true;
};
onmouseover.onRollOut = function() {
this.gotoAndPlay("stop");
tal1=this._name.charAt(11);
tal2=this._name.charAt(12);
_root.frame["beskrivelse"+tal1+tal2]._visible = false;
};
//Giver billedet et nummer som hentes fra XML filen
onmouseover.billede_nr = billede[i].attributes.nr;
//Henter en fade effekt ovenpå billedet
fader = _root.frame.attachMovie("fader", "fader"+i, i+billede.length+60);
// Placerer fadeeffekten
fader._x = x_offset;
fader._y = y_offset;
}//end if
x_offset += 0;
y_offset += box_height+y_box_margin;
} //end buildsomestuff
//}//end for
}// end if
};
//end function success
billedeXML.load("test.xml");
}//end onload
Hvad koden genererer kan ses på http://www.freiheits.com/attachmovie.html
Det jeg gerne vil, er at hvert billede kommer ind i rammen hver for sig, istedet for på én gang som det er nu.