Просмотр полной версии : Обращение к вышестоящим объектам
andrey_x
01.12.2007, 02:44
в document class определено 2 обьекта, созданные по двум классам.
Как из функции в одном классе, обратится к свойству другого обьекта ??
тоесть... как в AS2 можно было отталкиваться от root.object.blablabla ... а как здесь?
Таких обращений не должно быть.
andrey_x
01.12.2007, 13:38
может я не совсем точно описал...
два обьекта обьявлены рядом, в соседних строчках..
неужели нельзя из одного обратится к свойству другого ???
Передать ссылку на одного другому через конструктор.
Я не понимаю, что в вашем понятии есть объект.
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. Ко мне можно на "ты" а то как то не в своей тарелке ;)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.