flex – 如何将MXML文件内嵌到另一个MXML文件中?
我想在M
XML文件中包含一个M
XML文件,就像使用
include指令在AS3中包含外部文件一样.使用include伪指令在编译时将外部文件中的代码放入原始文件中,并将其置于同一范围内.
例如, 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类是Group,则必须扩展Group. 我已经完成了这项工作的项目,但并不好.人们开始在类后面的代码中设置样式和可视方面或组/查看特定属性,如果我们需要更改它或布局,我们最终将所有这些依赖项放到容器中.它变得一团糟.另外,使用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由编译器转换为类,因此无法按照您的要求进行操作.
我个人认为这是件好事.将事情分解为单独的文件并不等于“更有条理”.事实上,我会说它达到了完全相反的效果.你最好把注意力放在合适的组件结构上,恕我直言. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |