Показать сообщение отдельно
Старый 01.12.2007, 22:09
artfabrique вне форума Посмотреть профиль Отправить личное сообщение для artfabrique Найти все сообщения от artfabrique
  № 6  
Ответить с цитированием
artfabrique
 
Аватар для artfabrique

Регистрация: Apr 2006
Сообщений: 165
Отправить сообщение для artfabrique с помощью ICQ
помоему, можно отовсюду обращаться к статическим свойствам классов по их названию а не через ссылки на их экземпляры(обьекты).
Если в документклассе ты создал, например, 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?
*/
или таких ситуаций следует избегать?