首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将MXML文件内联成另一个MXML文件?

如何将MXML文件内联成另一个MXML文件?
EN

Stack Overflow用户
提问于 2011-07-25 16:40:48
回答 4查看 3.9K关注 0票数 5

我希望在我的MXML文件中包含一个MXML文件,就像您可以使用AS3指令在包括中包含一个外部文件一样。使用include指令在编译时将外部文件中的代码导入原始文件,将其置于相同的范围内。

例如,

Application.mxml:

代码语言:javascript
运行
复制
<Application>

    <source="external.mxml"/>

</Application>

External.mxml:

代码语言:javascript
运行
复制
<Styles/>

<Declarations>
    <Object id="test"/>
</Declarations>

我需要将此代码/mxml/xml与原始文件一起保存在外部文件中。别问我为什么要这么做。

另一个例子。下面是我当前的代码(简化),全部位于1 mxml文件中:

..。

代码语言:javascript
运行
复制
File1.mxml
<Button click="clickHandler()"/>

<Script>
public function clickHandler():void {

}
</Script>

..。

我想要的是:

..。

代码语言:javascript
运行
复制
File1.mxml
<Group>

    <source="File2.mxml"/>

    <Button click="clickHandler()"/>

<Group>


File2.mxml
<Script>
public function clickHandler():void {
    trace(this); // File1.mxml
}
</Script>

..。

我想把我的代码分成一个单独的文件..。

~~ 更新 ~~

虽然我所要求的不是使用“代码背后的”方案,但将代码从视图中删除获得了部分功劳。所以我创建了一个MXML文件,MyGroup.mxml或MyGroup.as,它扩展了包含clickHandler代码的Group。

这个方法的问题是,然后我被锁定到我要扩展的类类型,对视图进行硬编码。因此,例如,如果要将MXML类拆分为单独的文件,则必须扩展Group。

我曾经做过这样做的项目,但这并不好。人们开始在类后面的代码中设置样式和可视方面或组/视图特定属性,如果或在需要更改它或布局时,我们最终会将所有这些依赖项都添加到容器中。变成一团乱。此外,使用代码后面的代码您不能重用它(重用的方式包括styles.as被重用)。所以这不是解决办法,但我想我应该提一下。

下面是示例后面的代码,

MyGroupBehind.mxml:

代码语言:javascript
运行
复制
<Group>

   <Script>
   public function clickHandler():void {
       trace(this); // File1.mxml
   }
   </Script>

</Group>

MyGroupAhead.mxml:

代码语言:javascript
运行
复制
<MyGroupBehind>

    <Button click="clickHandler()"/>

</MyGroupBehind>
EN

回答 4

Stack Overflow用户

发布于 2011-07-25 20:11:26

编译器将MXML转换为类,因此无法执行您所要求的操作。

就个人而言,我认为这是一件好事。把事情分解成单独的文件并不等于“更有条理”。事实上,我会说它达到了完全相反的效果。您最好专注于一个适当的组件结构,IMHO。

票数 2
EN

Stack Overflow用户

发布于 2011-07-25 16:48:09

只需开始键入自定义组件的名称,然后按Ctrl+Space。代码完成将填充可能要添加的内容列表,包括组件的名称。使用向下箭头选择组件的名称,然后按enter键。代码完成将设置名称空间并启动组件的标记。如果你走到行的末尾,键入"/>“(没有引号),瞧!您将拥有一个表示自定义MXML组件的内联标记。

票数 1
EN

Stack Overflow用户

发布于 2011-07-25 16:59:07

首先,任何外部mxml都应该是有效的XML。现在,只要您有一个有效的MXML文件,只需按其名称添加它,如下所示:

代码语言:javascript
运行
复制
<Application>
<external:External/>
</Application>

其中“外部”是您的External.mxml文件的命名空间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6819474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档