Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.10.2008, 02:34
MonkDead вне форума Посмотреть профиль Отправить личное сообщение для MonkDead Посетить домашнюю страницу MonkDead Найти все сообщения от MonkDead
  № 1  
Ответить с цитированием
MonkDead
 
Аватар для MonkDead

Регистрация: Dec 2007
Сообщений: 204
По умолчанию 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
*/

Старый 07.10.2008, 03:41
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 2  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
а чуть выше написано это:
Цитата:
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.

Старый 07.10.2008, 06:38
MonkDead вне форума Посмотреть профиль Отправить личное сообщение для MonkDead Посетить домашнюю страницу MonkDead Найти все сообщения от MonkDead
  № 3  
Ответить с цитированием
MonkDead
 
Аватар для MonkDead

Регистрация: Dec 2007
Сообщений: 204
BlooDHound спасибо за ответ я понимаю вы хватаете сразу суть, но это я читал! Вопрос не совсем в том почему так происходит, а как это решит. Ну в общем я поторопился с написанием вопроса проблему решил.

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

Старый 07.10.2008, 13:29
senich вне форума Посмотреть профиль Отправить личное сообщение для senich Найти все сообщения от senich
  № 4  
Ответить с цитированием
senich

Регистрация: Jul 2006
Сообщений: 22
Цитата:
Сообщение от MonkDead Посмотреть сообщение
Ну в общем я поторопился с написанием вопроса проблему решил.
а как решил?

Старый 07.10.2008, 19:21
Dima_DPE вне форума Посмотреть профиль Отправить личное сообщение для Dima_DPE Найти все сообщения от Dima_DPE
  № 5  
Ответить с цитированием
Dima_DPE

блогер
Регистрация: Aug 2005
Сообщений: 178
Записей в блоге: 4
А никак не решить, хранить в массиве или сделать еще один Dicionary с индексами элементов, но токда for in-ом не переберешь, надо свой метод писать. В общем по ситуации. IMHO

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:56.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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