我想在我的MXML文件中包含一个MXML文件,就像您可以使用include指令在AS3中包含外部文件一样。使用include指令可以在编译时将外部文件中的代码放入原始文件,并将它放在同一个作用域中。如何将MXML文件包含在另一个MXML文件中?
例如,
Application.mxml:
<Application>
<source="external.mxml"/>
</Application>
External.mxml:
<Styles/>
<Declarations>
<Object id="test"/>
</Declarations>
我需要保持这种代码/ MXML/XML外部与原始文件保持一致。不要问我为什么要这样做。
另一个例子。这里是我当前的代码(简化)都在1个MXML文件:
...
File1.mxml
<Button click="clickHandler()"/>
<Script>
public function clickHandler():void {
}
</Script>
...
这里是我想要的东西:
...
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类设为组,则必须扩展组。
我已经完成了这项工作,并且它不好。人们开始设置样式和视觉方面,或者在类后面的代码中对特定属性进行分组/查看特定属性,以及后续是否需要对其进行更改时,或者我们最终将所有这些依赖关系发布到容器。它变得一团糟。另外,使用Code Behind你不能重用它(重用方式包括styles.as被重用)。所以这不是一个解决方案,但认为我会提到它。
这里是例如后面的代码,
MyGroupBehind.mxml:
<Group>
<Script>
public function clickHandler():void {
trace(this); // File1.mxml
}
</Script>
</Group>
MyGroupAhead。MXML:
<MyGroupBehind>
<Button click="clickHandler()"/>
</MyGroupBehind>
是的,这将在文档中创建组件的实例,但我需要它将外部MXML视为在同一范围内的同一文档的一部分。比方说,我有一个脚本标记中带有按钮和点击处理程序的文档。我想采取该点击处理程序,并将其放置到另一个mxml文件。 –