Показать сообщение отдельно
Старый 14.11.2006, 19:50
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 9  
Ответить с цитированием
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
getItemIndex возвращает индекс конкренного ЭКЗЕМПЛЯРА твоего объекта.

Код:
var a:Object = { par1 : 1, par2 : 2}
var b:Object = { par1 : 1, par2 : 2}

var linkToA: Object = a;

trace(a==b) //false
trace(a==linkToA) // true
почему так?
потому что a и b хранят ссылки на ячейки памяти с данными, а не сами данные.
Со стороны кажеться что у a и b одинаковые данные, но они храняться в разных ячейках памяти. При их сравнении сравниваеться не данные на которые они ссылаються а именно адреса этих ячеек памяти.

a==linkToA - true потому что мы linkToA присвоили значение адреса ячейки памяти.
Если бы ты програмил на Assembler, C/C++, Pascal на худой конец, для DOS то было бы легче с этип разобраться - там "осязаемые" ячейки памяти. В As3 тоже самое, только эти ячейки не такие очевидные.

Поэтому ты не можешь просто получить индекс элемента зная его данные, ты должен знать именно "ссылку" на этот элемент.

Для твоего случая __etc все верно описал.
__________________
33 коровы