Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   addChildAt() для конкретного слоя (http://www.flasher.ru/forum/showthread.php?t=175104)

Halfist 09.02.2012 23:01

addChildAt() для конкретного слоя
 
Доброе время суток.

У меня такой вопрос: возможно ли динамическое добавление нового компонента не просто при помощи addChildAt() с указанием глубины отображения, а именно в конкретный слой (к примеру, Слой 1). Уж очень неудобен этот метод, слишком мало конкретики. Мне нужна уверенность в том, что я создаю компоненты именно на том слое, который указал сам.

Заранее спасибо за ответ.

TanaTiX 09.02.2012 23:16

ваш_слой.addChildAt(...

Wolsh 09.02.2012 23:19

Никаких "слоев" нет. Слои – это инструмент графического редактора. В итоговом ролике есть только глубина. Что мешает Вам оперировать глубиной? Если надо аналог "слоев", создайте сначала пустые контейнеры (спрайты), расположите их в нужном порядке по глубине, и добавляйте затем компоненты в нужные контейнеры-слои.

Halfist 09.02.2012 23:24

Цитата:

Сообщение от TanaTiX (Сообщение 1061932)
ваш_слой.addChildAt(...

Цитата:

Сообщение от Wolsh (Сообщение 1061933)
Никаких "слоев" нет.

:confused:

TanaTiX 09.02.2012 23:32

Цитата:

Сообщение от Wolsh (Сообщение 1061933)
Если надо аналог "слоев", создайте сначала пустые контейнеры (спрайты)

Для меня слой и контейнер уже давно синонимы :)

Halfist 09.02.2012 23:41

Но ведь у спрайтов при создании
Код AS3:

layer1:Sprite = new Sprite(); addChild(layer1);

также есть своя "глубина". Т.е. получается, каждый спрайт имеет глубину от 0 до n, и каждый динамически созданный в спрайте компонент
Код AS3:

layer1.addChildAt(имя_компонента, глубина);

также будет иметь глубину от 0 до n? Или я чего-то не понимаю?

TanaTiX 09.02.2012 23:47

Если формально, то глубина появляется только тогда, когда объект добавляется в в некий контейнер (addChild, addChildAt). Глубины в пределах одного контейнера свои, в пределах другого - свои. Т.е. нет общего глобального "реестра глубин".

HardCoder 10.02.2012 00:11

Все верно понимаете. Допустим, лежит тарелка - это главный контейнер (главная сцена, главная временная шкала и т.д не важно кто как называет). На тарелке лежат блины (один на другом):
Код AS3:

var layer1:Sprite = new Sprite();
var layer2:Sprite = new Sprite();

На каждом блину лежит слой масла, поверх которого слой повидла.
Код AS3:

layer1.addChildAt(масло1, 0);
layer1.addChildAt(повидло1, 1);
layer2.addChildAt(масло2, 0);
layer2.addChildAt(повидло2, 1);

В итоге на тарелке 2 слоя (два блины с глубинами 0 и 1 относительно тарелки). На первом блину тоже 2 слоя (масло и повидло с глубинами 0 и 1 относительно блина). На втором блину также два слоя с индексами 0 и 1.

Fillini 10.02.2012 00:19

Видать скоро масленница )

elder_Nosferatu 10.02.2012 00:20

Короче, всем пока... Я к холодильнику побежал!!!


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

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