Volledige versie bekijken : Variabele variabelenaam
elguapo
%Europe/Berlin %498 %2005, 11:58
Ik probeer dmv een for lus een serie objecten aan te maken:
for(var i:Number = 0; i<theArray.length; i++) {
var ["toko"+i]:Locatie = new Locatie();
// nog meer code
}Ik krijg hierbij een "Identifier expected" error. Hoe krijg ik het voor elkaar om mijn objecten met de goede naam aan te maken (toko0, toko1, toko2 etc)?
Jordy
%Europe/Berlin %504 %2005, 12:07
this["toko"+i] ?? werkt dat?
elguapo
%Europe/Berlin %507 %2005, 12:10
Had ik al geprobeerd, maar geeft dezelfde error.
SaphuA
%Europe/Berlin %507 %2005, 12:10
Je kunt op deze manier geen 'var' gebruiken, dus het wordt iets als:
this["toko"+i]:Locatie = new Locatie();
elguapo
%Europe/Berlin %513 %2005, 12:18
Thnx voor de snelle reacties, maar ook
var this["toko"+i]:Locatie = new Locatie();
werkt niet :S
Jordy
%Europe/Berlin %513 %2005, 12:19
Je kunt op deze manier geen 'var' gebruiken, dus het wordt iets als:
this["toko"+i]:Locatie = new Locatie();
ahja, zoiets bedoelde k ook ;) alleen is niet echt duidelijk geworden denk ik bij Elguapo 8D
Dauntless
%Europe/Berlin %513 %2005, 12:19
En op die manier (van Saphua) kan je ook geen type meegeven, dus:
this["toko"+i] = new Locatie();
elguapo
%Europe/Berlin %520 %2005, 12:29
Dat werkt, maar....
in class Locatie heb ik een function setAdres(adr), die werkt nu niet meer :S
/me begint net met OOP, tis toch wat lastiger dan gedacht.
Fatty Owl
%Europe/Berlin %527 %2005, 12:38
Dat ligt normaal niet aan de manier waarop je er een instance van maakt. er zit dan gewoon een foutje in je class. :)
Dauntless
%Europe/Berlin %532 %2005, 12:46
Normaal:
this["toko"+i] = new Locatie();
this["toko"+i].setAdres("belgie");
Of is het een private functie? Want dan zit er inderdaad een fout in je classe :).
elguapo
%Europe/Berlin %536 %2005, 12:52
ik heb nu dit:
class Locatie {
var adres:String;
function setVar(adr) {
this.adres = adr;
}
}Als ik 't aanmaak via var toko:Locatie = new Locatie;
toko.setVar("blaat");geeft trace(toko.adres) de waarde "blaat". Via this["toko"+i] = new Locatie();
this["toko"+i].setVar("blaat"); geeft trace (toko0.adres) "undefined". Hoe los ik dat op?
De functie setVar wordt overigens wel uitgevoerd, en het argument wordt ook goed meegegeven.
Dauntless
%Europe/Berlin %553 %2005, 13:17
Hier werkt het gewoon...
elguapo
%Europe/Berlin %554 %2005, 13:18
Hmm, /me is off debuggen dan :P Thnx iig!
Dauntless
%Europe/Berlin %559 %2005, 13:25
class Foo
{
var adres = "";
public function Foo ()
{
}
public function setVar (pvar)
{
this.adres = pvar;
}
}
for (var i = 0; i<10; i++) {
this["toko"+i] = new Foo();
this["toko"+i].setVar("jeroen");
}
trace(this.toko0.adres);
Een gok: je doet daar iets met een array (theArray), ben je de waarden uit die array aan het doorgeven naar de setVar method? Misschien zit je array vol undefineds of zo?
elguapo
%Europe/Berlin %560 %2005, 13:27
Nee, ik refereerde niet goed: _root["toko"+1] werkt wel. Thnx!
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.