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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,921
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
DisplayList - не линейная модель, а иерархическая. Это значит, что каждый объект Sprite/MovieClip может хранить в себе ещё объекты, и там координаты будут относительными.
stage - корень DisplayList, в него никто не лезет, кроме новичков.
В stage хранится экземпляр главного класса(Main), ребёнком stage.
В свою очередь у вашего главного класса может быть ещё один ребёнок, Sprite/MovieClip, либо любой другой класс, унаследованный от DisplayObject.
Вы не будете обращаться к ребёнку в DisplayList через DisplayList, а будете обращаться к нему через ту же ссылку, через которую отправили его на сцену.

Код AS3:
var bag:Sprite = new Sprite();
bag.addChild(new Book());
bag.addChild(new Book());
var b:Book = new Book();
b.title = "My Little Princess";
b.mass = 1.24;
bag.addChild(b);
 
this.addChild(bag);
 
//Теперь, мне не нужно никак доставать его из DisplayList, 
//у меня ведь по прежнему есть ссылка на bag, и я буду обращаться к нему по ней.
 
bag.x = 100;
bag.y = 200;
bag.alpha = 0.7;
Проблема как раз в том, что так никто не делает, потому, что это некрасиво, неэффективно, нелогично и неудобно. Нужно всегда сохранять ссылку на объект, если он вам понадобится.
__________________
There is no thing in this world that is not simple.


Последний раз редактировалось ZackMercury; 02.07.2017 в 15:19.