为什么mxml不支持组件构造函数?

Gun*_*son 7 apache-flex mxml declarative-programming

为什么Flex框架的mxml语言不支持组件的构造函数或接受组件的构造函数参数?据我所知,如果它采用构造函数参数,则无法在mxml中声明ActionScript对象.我很好奇这个原因.它是Adobe的设计选择还是与声明性语言的工作方式有关?例如,为什么不允许:

<myNameSpace:MyComponent constructor="{argArray}"/> 
Run Code Online (Sandbox Code Playgroud)

Las*_*eyx 6

您可以阅读IMXMLObject帮助API以获取有关您的问题的更多信息.他们没有确切地说明为什么mxml不支持构造函数,但是它说你必须通过它的生命周期事件控制你的mxml组件:​​preinitialize,initialize和creationComplete.

我认为这是一个设计决策,考虑到mxml直接转换为AS3代码(您可以编译您的应用程序,添加keep-generated-actionscript = true并查看它产生的内容).