Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Ссылка на элемент массива, проблема записи (http://www.flasher.ru/forum/showthread.php?t=103614)

chingachgoog 08.11.2007 18:00

Ссылка на элемент массива, проблема записи
 
В данном коде все работает:
Код:

arr1=[]
arr1[0]={obj1:[]}
arr1[0].obj1[0]={d:"aaaa"}

trace(arr1[0].obj1[0].d) // aaaa

Но если я делаю ссылку на ячейку массива, то не выходит:

Код:

arr1=[]
arr1[0]={obj1:[]}
link=arr1[0].obj1[0]
link={d:"aaaa"}
trace(arr1[0].obj1[0].d) // undefined

Понятно почему так получается:

link=arr1[0].obj1[0] - ссылка на ячейку массива
тогда как следующая запись
link={d:"aaaa"} вместо того, чтобы в ячейку массива записать объект,
создает ссылку на некий абстрактный объект.

Вопрос, как правильно записать, чтобы работало со ссылкой?

etc 08.11.2007 18:09

Так не получится.

Mnilionic 08.11.2007 18:42

можно через доволнительный ключ
Код:

arr1 = [];
arr1[0] = {obj1:[]};
link = arr1[0].obj1[0] = [];

link["obj"] = {d:"aaaa"};

trace(arr1[0].obj1[0]["obj"].d)


chingachgoog 08.11.2007 19:46

Нет, тогда объект {d:"aaaa"} становиться не в ячейку arr1[0].obj1[0], а в ячейку именнованного массива obj ячейки arr1[0].obj1[0]

Тут уж проще упростить сам link:
Код:

arr1=[]
arr1[0]={obj1:[]}
link=arr1[0].obj1
link[0]={d:"aaaa"}
trace(arr1[0].obj1[0].d) // aaaa

Жалко, что нельзя напрямую...

iNils 08.11.2007 19:59

Код:

arr1 = [];
arr1[0] = {obj1:[{}]};
link = arr1[0].obj1[0];
link.d = "aaaa";
trace (arr1[0].obj1[0].d);

Ошибка в рассуждениях
Цитата:

Код:

arr1=[]
arr1[0]={obj1:[]}
link=arr1[0].obj1[0]
...

link=arr1[0].obj1[0] - ссылка на ячейку массива
link не является ссылкой на ячейку, так как массив пустой, а ссылаться на пустоту не получится.


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

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