PDA

Volledige versie bekijken : Variabel type variabel maken?


chunobi
%Europe/Berlin %450 %2009, 11:49
Hey forumleden,

ik vroeg me af of jullie me hierbij konden helpen. Ik heb twee arrays (ycord,xcord) in één array gestopt genaamd map. De velden in deze array bevatten cijfers en/of letters die een bepaald plaatje moeten voorstellen. Zo heb ik bijv. tile1, tile2, tilea als plaatjes. Nu vraag ik me af of er een andere manier is dan onderstaande:

if((map[ycord][xcord])==1){
var tile:tile1 = new tile1();
addChild(tile);

om voor elk veld te kijken welk plaatje moet worden gecreert. Is het bijvoorbeeld mogelijk om waar nu "tile1" staat, een variabele te kunnen declareren? (e.g. var tile:MijnVariabele en dan ervoor definieren var MijnVariabele: String = 0/1/2/3/a/b)

Bedankt alvast voor de hulp!

Jan
%Europe/Berlin %462 %2009, 12:06
var C:Class = getDefinitionByName('tile' + map[ycord][xcord]) as Class
var tile = new C();

Groeten;
Jan

chunobi
%Europe/Berlin %486 %2009, 12:40
Heel erg bedankt adnez (Jan)!

Opmerking voor mensen die ook hiervan gebruik willen maken, het volgende toevoegen:
import flash.utils.getDefinitionByName;

jaspermuts
%Europe/Berlin %670 %2009, 17:05
var C:Class = getDefinitionByName('tile' + map[ycord][xcord]) as Class
var tile = new C();Groeten;
Jan
Nu mis je eigenlijk nog wel het belangrijkste deel van de vraag he ;)
var C:Class = getDefinitionByName('tile' + map[ycord][xcord]) as Class
var tile:C = new C();

Jan
%Europe/Berlin %688 %2009, 17:31
Nu mis je eigenlijk nog wel het belangrijkste deel van de vraag he
Door het weg te laten meende ik duidelijk gemaakt te hebben dat zoiets niet kan. En hij komt er snel genoeg achter als ie het wel zou proberen. ;)

Die C wordt namelijk pas at runtime geresolved en dus kan je dat niet at compile time opgeven.

Groeten;
Jan