2016-03-18 16 views
0

Возможно ли установить видимость Ребенка объекта, который является дочерним элементом этапа над этапом?AS3 - Установка уровня выше родительского объекта

Например, если Overworld является дочерним элементом Stage, а PlayerCharacter также является дочерним элементом Stage, может ли персонаж Player перемещаться позади частей Overworld, например деревьев?

+0

Невозможно. Единственный способ контролировать глубину отображения - настроить порядок отображения списка. Вы всегда ставите все свои объекты в одном и том же родителе и используете свой собственный алгоритм сортировки, чтобы контролировать внешний вид глубины с течением времени. – Aaron

ответ

0

Вы можете использовать:

parent.setChildIndex(Overworld, 1) 
parent.setChildIndex(PlayerCharacter , 2) 

Если глубина (г порядок) объектов постоянен я предлагаю использовать слои. Добавление трех спрайтов на сцену. Как фон, игровые объекты и передний план. Экономит массу неприятностей.

public Sprite foregroundLayer = new Sprite(); 
public Sprite objectLayer = new Sprite(); 
public Sprite backgroundLayer = new Sprite(); 

Добавить их на сцену в вашей игре, инициализации в желаемом порядке.

+0

Я тоже подумал об этом, но проблема в том, что части, которые должны быть на переднем плане, динамически помещаются в Overworld, который автоматически должен лежать на слое за игроком. Например, деревья, которые размещены на Overworld, имеют две части, нижнюю часть, где игрок может быть впереди, и верхняя часть, которая находится перед игроком. Таким образом, я не думаю, что это будет работать без полного разделения верхней части дерева снизу. Но я вижу эту функцию во множестве флеш-игр, для этого должно быть решение. Кроме того, почему «родитель». SetChild? – uncanny