Цитата:
Сообщение от iNils
В отличии от мувиклипов, которое являются визуальными объектами и поэтому "физически" находятся в другом клипе и поэтому имеют родителей, объекты создаются в памяти и на них просто дается ссылка. Понятие родителя к ним не применимо.
То есть если взять пример
 Код:
obj1 = {};
obj2 = {};
obj1.obj = obj2;
obj2.obj = obj1;
То обратившись к obj1.obj, а по сути к obj2, то obj1 не будет является для родителем. Вообще ни как.
|
Это не совсем так. В данном случае имеются:
1) два объекта у которых ОБЩИЙ родитель- _root или временная диаграмма, где они расположены.
2) в каждом из объектов есть ССЫЛКА на другой объект, естественно помещение ссылки в какой-то объект не значит, что он стал родителем.
В коде:

Код:
obj1={}
obj1.obj2={}
Объект obj1.obj2 имеет своим родителем объект obj1
Цитата:
Сообщение от iNils
И как ты собрался отличать ссылку на объект от самого объекта, мне тоже не понятно.
|
Если объект имеет родителем тот же объект, свойства которого просматриваются - то это не ссылка, а именно объект.
Цитата:
Сообщение от iNils
Хочется присечь рекурсию кода выше? Можно сделать так:
 Код:
obj1 = {};
obj2 = {};
obj1.obj = obj2;
obj2.obj = obj1;
function a (o, p) {
for (arg in o) {
trace (arg + "=" + o[arg]);
if (o[arg] != p) {
a (o[arg], o);
}
}
}
a (obj1);
|
Хороший код. Но повиснет на троичном зацикливании... Что не случилось бы, если бы можно было различать ссылки и сами объекты.