J'essaie de supprimer des objets simples de la mémoire, mais quand j'appelle removeChildren l'utilisation de la mémoire a augmenté:/Et je ne sais pas pourquoi? Et comment puis-je supprimer des objets?Comment supprimer quelque chose dans Action Script 3
package {
import flash.display.DisplayObject;
import flash.display.SimpleButton;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.system.System;
public class Main extends Sprite {
public function Main()
{
for (var i:int = 0 ; i < 1000;i++) {
var addBouncerButton:SimpleButton = new SimpleButton();
addBouncerButton.x = 100;
addBouncerButton.y = 10;
addBouncerButton.name = "Btn"+i;
addChild(addBouncerButton);
}
stage.addEventListener(Event.ENTER_FRAME, update);
stage.addEventListener(KeyboardEvent.KEY_DOWN, remove);
}
private function remove(e:KeyboardEvent):void
{
trace("Children : " + this.numChildren);
trace(System.totalMemory * 1024 + " kb");
if(this.numChildren > 0)
var o:DisplayObject = removeChildAt(this.numChildren - 1);
o = null;
}
private function update(event:Event):void
{
}
}
}
Les objets sont susceptibles d'être collectés lorsqu'il n'y a plus de référence à cet objet. Cependant, juste parce qu'il n'y a plus de références, cela ne veut pas dire que les ordures seront collectées immédiatement; cela arrivera juste à un moment donné. – poke