Il semble que vous créiez de nouveaux objets en l'ajoutant à votre scène et en supprimant les objets indésirables de la scène, ce qui pourrait ralentir la vitesse car il y aurait beaucoup d'objets indésirables dans la mémoire. Dans Flash AS3, vous ne pouvez pas compter entièrement sur GC pour le nettoyage des ordures. Donc, la meilleure approche est de générer le moins possible de déchets et de recycler les objets inutilisés chaque fois que vous avez besoin d'un nouvel objet.
Par exemple, une application continue à mettre un cercle sur la scène et à supprimer certains d'entre eux à un intervalle de temps fixe. Donc, pour ce genre de ressource, implémentez un pool de ressources.
public class ResourcePool {
static function getCircle(prop:Object):Circle {
//check if you already have some circle objects
//if yes pick one apply the prop and return
// else create a new circle with specified prop and return
}
static function recycle(circle:Circle):void {
//add it to available resource array
}
}
Maintenant, lorsque vous avez besoin d'un objet circle, demandez à l'outil ResourcePool:
var c:Circle = ResourcePool.getCircle(someProperty);
Et lorsque vous supprimez un cercle, recyclez-le correctement pour pouvoir l'utiliser plus tard.
//remove circle1 object
ResourcePool.recycle(circle1);