Я работаю над создателем мира, который загрузит инструментарий, представленный в виде XML-документа. Документ будет выглядеть примерно так:
<?xml version="1.0" encoding="utf-8"?>
<toolkit>
<folder name="environment">
<folder name="terrain">
<tool name="grass">
<classname>game.terrain.Grass</classname>
<layer>terrain</layer>
</tool>
<tool name="dirt">
<classname>game.terrain.Dirt</classname>
<layer>terrain</layer>
</tool>
<tool name="water">
<classname>game.terrain.Water</classname>
<layer>water</layer>
</tool>
</folder>
<folder name="mobile">
<folder name="enemies">
<tool name="youngzombie">
<classname>game.mobiles.YoungZombie</classname>
<layer>mobiles</layer>
</tool>
<tool name="zombie">
<classname>game.mobiles.Zombie</classname>
<layer>mobiles</layer>
</tool>
</folder>
</folder>
<tool name="player">
<classname>game.mobiles.Player</classname>
<layer>mobiles</layer>
</tool>
</toolkit>
Теперь я хочу представить эту структуру во флэш-памяти. Вертикальное расположение достаточно просто, просто размещая элементы сверху вниз. Это ошеломляет, когда мне нужно сделать следующее:
- Возможность щелкнуть любую папку и скрыть / показать все ее дочерние элементы.
- Позиционирование элементов по горизонтали на основе иерархической позиции (дочерние элементы папок, дочерние папки и т. Д.)
- Расположите папки / инструменты вертикально, когда папки выше и в одном и том же «каталоге» скрыты.
Это звучит намного проще, чем есть, или я пропускаю важный и очевидный шаг.
Просто чтобы избежать путаницы - когда я ссылаюсь на «папки» и «инструменты», это MovieClip, который представляет собой простой блок с текстом над ним, например:
------
folder
------
------
folder
------
----
tool
----
----
tool
----
------
folder
------
----
tool
----
----
tool
----