PDA

Volledige versie bekijken : for loop [Opgelost]


bremskie
%Europe/Berlin %858 %2008, 20:36
Ik had een vraagje over een for loop. Met de volgende "for loop" loop ik door een xml file heen.
Als ik m traced krijg ik alle waarden mbt de attribute.width.

ouput is in mijn geval:

32
32
32
330
330
330
330
330

De breedte van de foto's dus.
hoe kan ik nu met een button functie met elke klik naar de volgende index gaan.
Vergeef me als ik de verkeerde terminologie gebruik. Verbetering daarin ook welkom.
Dus na eerste klik 32
tweede 32
derde 32
vierde 330
etc


for (var b = 0; b < len; b++){
var currentPictures = portfolioPictures[i];
var breedte = Number(currentPictures.attributes.width);
}

test_mc.onRelease = function () {
breedte++;
trace (breedte);
}



Die breedte++ werkt niet. Nu telt ie er steeds een bij
:S

Dauntless
%Europe/Berlin %863 %2008, 20:42
Daarvoor moet je met een Array werken:
http://livedocs.adobe.com/flash/9.0/main/00000087.html

Een array is eigenlijk een lijstje waar je verschillende dingen achter elkaar (geoordend) in kan opslaan. Items kan je benaderen via een index, welke je telkens kan ophogen.

bremskie
%Europe/Berlin %865 %2008, 20:46
Dankje , watte doen vanaaf :P

bremskie
%Europe/Berlin %103 %2008, 02:28
Ik geef het op,, ik heb weer aardig wat uurtje erop zitten dus echt wel genoeg array types voor mijn neu zien gaan maar op de een of andere manier snap ik het niet hoe ik m moet creeren in mijn code.
Ik heb wel mijn script omgebouwd dat alle nodes & attributen in een array word gestopt.
Maar wat ik wil bewerkstelligen zie topic 1 luk me nog steeds niet.

Ik zal mijn script ff posten misschien dat iemand me hierbij nog even wil helpen


//---------------------------
var listArray:Array = new Array();
var breedteX:Array = new Array();
var photos:Array = new Array();
var currentX:Number = 0;

function generate_portfolio(portfolio_xml){
listArray = portfolio_xml.firstChild.childNodes;

for (i=0; i<listArray.length; i++) {
photos.push(listArray[i].picture_thumb);
breedteX.push(listArray[i].attributes.width);

var currentPicture = listArray[i];

var len:Number = listArray.length;

for (var b = 0; b < len; b++){
var breedte = Number(listArray[i].attributes.width);
};
// Moet die knop volgens mij komen

test_mc.onRelease = function () {

trace (breedte);
}


var currentThumb_mc = menu_mc.createEmptyMovieClip("thumbnail_holder"+i,i);
currentThumb_mc._x = currentX;

currentX += breedte+thumb_spacing;
loader.loadClip(currentPicture.attributes.thumb, currentThumb_mc);
}
};


Wat er nu staat bij de test_mc.button is natuurlijk fout maar voor de overzichtelijkheid heb ik m maar ff zo gelaten.
de var breedte geeft in mijn output alle (width.attribute) van mijn plaatjes in mijn xml file
Alvast bedankt

bremskie
%Europe/Berlin %103 %2008, 02:29
Ik geef het op,, ik heb weer aardig wat uurtje erop zitten dus echt wel genoeg array types voor mijn neu zien gaan maar op de een of andere manier snap ik het niet hoe ik m moet creeren in mijn code.
Ik heb wel mijn script omgebouwd dat alle nodes & attributen in een array word gestopt.
Maar wat ik wil bewerkstelligen zie topic 1 luk me nog steeds niet.

Ik zal mijn script ff posten misschien dat iemand me hierbij nog even wil helpen


//---------------------------
var listArray:Array = new Array();
var breedteX:Array = new Array();
var photos:Array = new Array();
var currentX:Number = 0;

function generate_portfolio(portfolio_xml){
listArray = portfolio_xml.firstChild.childNodes;

for (i=0; i<listArray.length; i++) {
photos.push(listArray[i].picture_thumb);
breedteX.push(listArray[i].attributes.width);

var currentPicture = listArray[i];

var len:Number = listArray.length;

for (var b = 0; b < len; b++){
var breedte = Number(listArray[i].attributes.width);
};
// Moet die knop volgens mij komen

test_mc.onRelease = function () {

trace (breedte);
}


var currentThumb_mc = menu_mc.createEmptyMovieClip("thumbnail_holder"+i,i);
currentThumb_mc._x = currentX;

currentX += breedte+thumb_spacing;
loader.loadClip(currentPicture.attributes.thumb, currentThumb_mc);
}
};


Wat er nu staat bij de test_mc.button is natuurlijk fout maar voor de overzichtelijkheid heb ik m maar ff zo gelaten.
de var breedte geeft in mijn output alle (width.attribute) van mijn plaatjes in mijn xml file
Alvast bedankt

Dauntless
%Europe/Berlin %453 %2008, 10:53
De structuur moet zo worden:
var myArray:Array = new Array();
function createPortfolio()
{
//hier allemaal push() bewerkingen zodat de array gevuld wordt
}

var index:Number = 0;
myButton.onRelease = function()
{
trace(myArray[index++]);
}

Geef anders je xml structuur ook even en zeg welke waarden je in een array wil krijgen.

bremskie
%Europe/Berlin %602 %2008, 14:27
Dankje Dauntless het werkt. Mijn array's incl push bewerkingen had ik al. Ik kan er eigenlijk niet over uit dat zo een simpel regeltje "trace(myArray[index++]);" incl die index doet wat ik m wil laten doen.
Ik ben een aardige tutorial code searcher geworden ondertussen (en enthiousiast Flashfocus spammer :D ) maar het moeilijkste is los van dat je code kan copy and paste is zelf beredeneren en constructies te bedenken. Maarja aldoende leert men.
:O