Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   for in последовательность вывода. (http://www.flasher.ru/forum/showthread.php?t=116643)

MonkDead 07.10.2008 02:34

for in последовательность вывода.
 
Написал ассоциативный массив на базе 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
*/


BlooDHounD 07.10.2008 03:41

а чуть выше написано это:
Цитата:

Iterates over the dynamic properties of an object or elements in an array and executes statement for each property or element.Object properties are not kept in any particular order, so properties may appear in a seemingly random order.Fixed properties, such as variables and methods defined in a class, are not enumerated by the for..in statement. To get a list of fixed properties, use the describeType() function, which is in the flash.utils package.

MonkDead 07.10.2008 06:38

BlooDHound спасибо за ответ я понимаю вы хватаете сразу суть, но это я читал! Вопрос не совсем в том почему так происходит, а как это решит. Ну в общем я поторопился с написанием вопроса проблему решил.

Еще раз спасибо BlooDHound за потраченное время!

senich 07.10.2008 13:29

Цитата:

Сообщение от MonkDead (Сообщение 768527)
Ну в общем я поторопился с написанием вопроса проблему решил.

а как решил? :)

Dima_DPE 07.10.2008 19:21

А никак не решить, хранить в массиве или сделать еще один Dicionary с индексами элементов, но токда for in-ом не переберешь, надо свой метод писать. В общем по ситуации. IMHO


Часовой пояс GMT +4, время: 13:01.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.