Hi, I’m creating a highscore list like this:
[AS]function loaderCompleteHandler(e:Event):void {
var scoreXML:XML=new XML(e.target.data);
var playerResult:MovieClip;
var pX:Number=86;
var pY:Number=116;
var order:Number=0;
for each (var player:Object in scoreXML.player) {
order+=1;
playerResult = new PlayerResult();
playerResult.x=pX;
playerResult.y=pY;
playerResult.order_t.text=" "+order;
playerResult.name_t.text=player.@username;
playerResult.score_t.text=player.score.@score;
addChild(playerResult);
pY+=playerResult.height-1;
trace(playerResult);
}
}[/AS]
I have a MovieClip with the linkage name of “playerResult” in the library. For every loop it takes the scores+names from the xml and displays them by creating a new instance of “playerResult” and attaches them one by one under each other.
I need to be able to remove this highscore when it’s not longer needed, thus (the most important part) freeing up memory. So I can then use the same code to show the scores again without doubling the memory it uses every time.
I just can’t find a good way to remove all the MCs as they all get the same instance name for every new mc attached. So I added a line (marked with //):
[AS]function loaderCompleteHandler(e:Event):void {
var scoreXML:XML=new XML(e.target.data);
var playerResult:MovieClip;
var pX:Number=86;
var pY:Number=116;
var order:Number=0;
for each (var player:Object in scoreXML.player) {
order+=1;
playerResult = new PlayerResult();
playerResult.name=“playerResult”+[order]; // THIS ONE
playerResult.x=pX;
playerResult.y=pY;
playerResult.order_t.text=" "+order;
playerResult.name_t.text=player.@username;
playerResult.score_t.text=player.score.@score;
addChild(playerResult);
pY+=playerResult.height-1;
trace(playerResult);
}
}[/AS]
… so I now have a name for each instance (playerResult0, playerResult1…) but still can’t come up with a way to remove them.
The scores are displayed like this:
1 name score
2 name score
etc…
Any suggestions?
thanks.