Написал ассоциативный массив на базе Dictionary, ключами которого являются объекты. Написал довольно большой проект с постоянным использованием этого ассоциативного массива. Но возникла проблема: при переборе с помощью for in последовательность вывода не совпадает с последовательностью записи, что в данном случае критично.

Код:
var arrA:ArrayA = new ArrayA();
arrA.add(Class1, Clacc10) // добавляет ключ: значение
arrA.add(Class2, Clacc20)
arrA.add(Class3, Clacc30)
var key:Object
for (key in arrA)
{
trace(key)
}
trace выводит то Class2, Class1, Class3, то Class3, Class2, Class1 и т.д., вместо Class1, Class2, Class3.
Одним словом, такая же проблема возникает и при переборе простого Object, хотя в хелпе приводят пример:

Код:
var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"};
for (var prop in myObject) {
trace("myObject."+prop+" = "+myObject[prop]);
}
/* output:
myObject.firstName = Tara
myObject.age = 27
myObject.city = San Francisco
*/