Archief - [PROG][AS3] Dynamisch verwijderen van objecten

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Recipe4hate

Legacy Member
Hallo

Ik ben een beetje aan het prullen in actionscript 3, maar ik stuit op volgend probleem:

Ik wil een tiled map maken via een multidimensionele array die bestaat uit getallen (ieder getal wordt overlopen en er wordt dan een tekening gezet die voldoet aan het getal). De tiles zijn movieclips die gelinkt zijn aan een klasse Tile (voorlopig gewoon aanwezig, maar bevat niets behalve de constructor).
Dit werkt allemaal mooi, maar nu wou ik ook meteen een functie schrijven om al deze tiles in 1 keer terug te verwijderen. Ik doe dit simpel: ik roep in een forlus alle objecten op via this.getChildAt[x] en ga dan kijken of deze toevallig van de klasse Tile zijn. Hier loop het echter fout en ik krijg volgende foutmelding:


ReferenceError: Error #1069: Property 0 not found on builtin.as$0.MethodClosure and there is no default value.



En hier is mijn relevante code:
Code:
function addTile(_s:String, _tX:Number, _tY:Number):void
{
	switch(_s)
	{
		case "grass":
			var tileg:tile_grass = new tile_grass;
			tileg.x = _tX;
			tileg.y = _tY;
			this.addChild(tileg);
			break;
		case "stone":
			var tiles:tile_stone = new tile_stone;
			tiles.x = _tX;
			tiles.y = _tY;
			this.addChild(tiles);
			break;
		case "mud":
			var tilem:tile_mud = new tile_mud;
			tilem.x = _tX;
			tilem.y = _tY;
			this.addChild(tilem);
			break;
	}
}

function clearTiles():void
{
	for(var i:Number = 0; i<this.numChildren; i++)
	{
		var o:DisplayObject = this.getChildAt[i];

                if(o is Tile)
                {
                //hier geraakt het programma zelfs niet
                this.removeChild(o);
                }
	}
}


Wat kan hier de oorzaak van zijn, en wat doe ik fout?
Bedankt

strekie

Legacy Member
ik heb voor een totaal ander probleem dezelfde error waarop ik in google aan t zoeken was en dus hierop uitkwam.
om alles tiles in 1 keer te verwijderen zou ik deze gewoon in een container steken en dan als ge ze weg wilt de container verwijderen.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan