传递基于MXML的自定义Flex组件的构造函数参数

时间:2010-04-18 17:47:29

标签: flex custom-component

我已经实现了MXML自定义组件,我想将参数传递给构造函数:

 newUser = new userComp("name");

而不是使用set方法。

如果使用MXML(使用initialize=myPseudoCostructor()方法构建自定义组件,这是否可行?)

或者我只能用额外的代码行设置参数?

3 个答案:

答案 0 :(得分:5)

您不能pass variables进入MXML组件的构造函数。我甚至不相信MXML组件中的define a constructor是可能的,尽管我可能错了。但是,您可以设置具有默认值的属性,并在构造后更改。

您还可以创建一个初始化函数,该函数也在构造后调用。

答案 1 :(得分:3)

我最近遇到了这个问题 - 您可以做的是创建一个返回组件的初始化函数:

在组件内部(为了参数而调用,MyComponent):

public function init(...args):MyComponent {

    //Add constructor code here

    return this;    
}

...创建组件时,您可以这样调用:

var myComp:MyComponent = new MyComponent().init(args);

当它返回对象时,您可以将其视为构造函数。我最近不得不使用这种方法,似乎是解决问题的最佳方法。

答案 2 :(得分:1)

IN COMPONENT (cosa)

<fx:Declarations>
 <fx:String id="name">Jon Doe</String>
</fx:Declarations>
<fx:Script>
 trace("hola "+name)
</fx:Script>
<s:Label text="Hola {name}"/>

IMPLEMENT
<cosa name="Juan Perez"/>