如何从外部文件加载MXML(就像我可以使用PHP include函数)?

时间:2011-11-05 15:54:13

标签: actionscript-3 flex

我是Flex的新手,我正在尝试编写一个包含大量内容的程序。有一个侧边栏,一个带有标签的主要内容窗格等。

我希望能够创建MXML文件(如sidebar.MXML,tab1.mxml等),然后我可以将其加载到侧边栏或加载到某个选项卡中。这将使我的代码更易于管理,而不是在主MXML文件中编写所有代码。

我可以这样做吗?我已经通过将它们放在自定义组件中来模块化我的一些代码,但我真的希望能够从其他MXML文件加载内容,就像我在PHP中可以做的那样:

<?php include 'someFile.php'; ?>

3 个答案:

答案 0 :(得分:2)

你可以通过将模块编译成不同的swfs并根据需要加载它们来模拟类似的东西,尽管它很麻烦且很慢。

答案 1 :(得分:2)

最简单的方法就是编写自定义组件,这是一个很容易做到的大词。

假设你有这样的申请:

Main.mxml

<s:Application ...>
    <s:Hgroup id="tabs" ...>
        (Your tab content here)
    </s:HGroup>
    <VGroup id="sideBar" ...>
        (Your sidebar content here)
    </s:VGroup>
</s:Application>

然后创建新的mxml文件,例如Sidebar.mxml和Tabs.mxml,让它们像这样从VGroup和HGroup扩展。

Tabs.mxml

<s:HGroup ...>
    (Your tab content here)
</s:HGroup>

Sidebar.mxml

<s:VGroup>
    (Your sidebar content here)
</s:VGroup>

然后将HGroup和VGroup替换为Main.mxml

中的自定义组件

Main.mxml

<s:Application xmlns:components="com.the.path.to.your.component.package.*" ...>
    <components:Tabs/>
    <components:Sidebar/>
</s:Application>

事实上你做同样的事情:

<?php include 'someFile.php'; ?>

看起来有点不同。

答案 2 :(得分:1)

好吧,除了使用自定义组件之外,看起来没有办法做到这一点。