PDA

Просмотр полной версии : Обращение к вышестоящим объектам


andrey_x
01.12.2007, 02:44
в document class определено 2 обьекта, созданные по двум классам.
Как из функции в одном классе, обратится к свойству другого обьекта ??

тоесть... как в AS2 можно было отталкиваться от root.object.blablabla ... а как здесь?

etc
01.12.2007, 11:53
Таких обращений не должно быть.

andrey_x
01.12.2007, 13:38
может я не совсем точно описал...

два обьекта обьявлены рядом, в соседних строчках..
неужели нельзя из одного обратится к свойству другого ???

etc
01.12.2007, 13:52
Передать ссылку на одного другому через конструктор.
Я не понимаю, что в вашем понятии есть объект.

andrey_x
01.12.2007, 14:29
Все, разобрался))
проще всего действительно ссылку через конструктор передать

artfabrique
01.12.2007, 22:09
помоему, можно отовсюду обращаться к статическим свойствам классов по их названию а не через ссылки на их экземпляры(обьекты).
Если в документклассе ты создал, например, 2 экземпляра(обьекта) други классов:



// код в документ классе
var myDog:Dog = new Dog();
var myCat:Cat = new Cat();

// код Dog
public static var myProperty:String;

// код Cat
Dog.myProperty = "Дуся"
trace(Dog.myProperty)



вроде как то так. Но при этом это свойство будет тотчас изменено у всех экземпляров класса.

А вообще если это оба класса синглетоны(почитай статью на ГарбиджКоллекторе) то у них например в конструкторе может быть зашит статический линк на их единственный экземпляр как я понял(но пока сомниваюсь =))

То есть



// код в документ классе
var myDog:Dog = new Dog();
var myCat:Cat = new Cat();

// код Dog
public static var instance:Dog;
public var myProperty;

public function Dog() {
myProperty = "Фрося"
instance = this;
}

// код Cat
trace(Dog.instance.myProperty);
Dog.instance.myProperty = "Дуся";
trace(Dog.instance.myProperty);



ща ещё сам не до конца разобрался. Если что, надеюсь etc поправит.
Кстати вопрос по этой же теме:

А что если это не синглетоны и у меня с полсотни экземпляров? как мне тогда обращаться к их свойствам из соседних классов? Только через ссылки в конструктор? Например такая ситуация



// код в документ классе
for(var i=0; i<2000; i++) {
this["myDog_"+i] = new Dog();
}

// код Cat
/*
как мне от суда прообращаться ко всем моим Dog?
*/


или таких ситуаций следует избегать?

BlooDHounD
01.12.2007, 22:45
мдя ... artfabrique, выши познания ООП просто поражают :) может вам сперва прочитать хотя бы что-нитбудь о программировании?

artfabrique
01.12.2007, 23:00
да я только начал знакомится можно сказать. Я же написал!!

ща ещё сам не до конца разобрался.

я просто бывший php кодер и привык к процедурке.
Мука уже почти на стол положил (завтра привезут) ;)

А можно в деталях что не так. Токо большая просьба поподробней =)

PS. Ко мне можно на "ты" а то как то не в своей тарелке ;)