tu fais une erreur triviale. essaie le code que je t'ai posté, et fait un trace() sur ta classe pour comprendre le remplissage des tableaux par undefined. tu n'as visiblement pas essayé.
- Flash ne remplit rien à l'instanciation du tableau,
- si arr[n], Flash remplit le tableau d'undefined jusque n,
- si delete arr[n], Flash remplace arr[n] par undefined, on ne peut effacer totalement arr[n], sinon les index se décaleraient évidemment, donc on insère une valeur nulle à la place.
Object() est une valeur nulle, avec une valeur residuelle, un poids effectif en mémoire, mais ça reste une valeur vide indéfinie.
undefined est une valeur nulle, avec une valeur residuelle, un poids effectif en mémoire, mais ça reste une valeur vide indéfinie.
tu viens de comparer deux tableaux strictement identiques, ton code démontre simplement que Object() = undefined.
ça fonctionne parfaitement avec Object({prop = 'foobar'}), là on a des objets d'un côté, et des undefined de l'autre, il y a donc une différence notable.
pour effacer un tableau en AS2, delete arr; ou simplement arr = new Array();
ou Array.pop() si tu utilises ton tableau comme une liste.
utilises ASDK (http://www.themidnightcoders.com/asdk/index.htm), tu retrouveras des structures de données traditionnelles un peu moins rapides mais plus faciles à saisir.
Message édité par craps_youpla le 27-07-2006 à 19:32:47