Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Обращение к вышестоящим объектам (http://www.flasher.ru/forum/showthread.php?t=104733)

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

да я только начал знакомится можно сказать. Я же написал!!
Цитата:

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

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

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

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


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

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