我正在开发一个世界构建器,它将加载一个由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>
现在,我希望能够在flash中表示这个结构。垂直布局非常简单,只需将元素从上到下放置即可。当我需要执行以下操作时,它会变得令人难以置信:
它听起来要比现在容易得多,或者我错过了一个重要而明显的步骤。
为了避免混淆 - 当我引用“文件夹”和“工具”时,这些是一个MovieClip,它是一个带有文本的简单块,如:
------
folder
------
------
folder
------
----
tool
----
----
tool
----
------
folder
------
----
tool
----
----
tool
----
答案 0 :(得分:0)
我在不使用树的情况下也这样做,因为布局对我来说没用(移动应用程序)。 您可以为每个读取xml中每个元素的内容创建一个,并将父项和元素添加到每个标记中。 我使用tileList创建一个视图,并给出一个arraylist作为dataprovider-tag,其中填充了xmlfile的元素。单击项目或上一个按钮将更改列表。你可以在你的tileList itemrenderer中创建一个onDataChange,它通过你的arraylist中的新数据重新创建tileList 如果单击某个项目,则可以显示子项。 如果单击上一个文件夹,则可以显示父对象(具有自己的子对象)。
不知道你是否理解工作方式。如果您对此有疑问,请询问;)。