Приветствую всех. У меня возник вопрос, я искал на форуме сразу, но единственное что нашел это тему со схожим вопросом, но там был ответ только на счет Object, что порядок добавления свойств не сохраняется.
Вот мой код:

Код AS3:
var vals:Array = new Array();
vals["hi"] = "some value 1";
vals["bye"] = "some value 2";
for (var key:String in vals)
trace("key = " + key + " value = " + vals[key]);
результат исполнения вот такой:
key = bye value = some value 2
key = hi value = some value 1
вопрос в том почему поменялись местами элементы массива hi и bye? я заметил что такая же ситуация и с dictionary, а как быть когда важен порядок элементов, то есть надо что бы элементы были в порядке их добавления? какие есть решения, я что-то погуглил и ничего путного нету, или реализовывать такой вариант надо самому? Заранее благодарен.