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:
Wat kan hier de oorzaak van zijn, en wat doe ik fout?
Bedankt
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