Передача параметров конструктора для пользовательских компонентов Flex на основе MXML - PullRequest
7 голосов
/ 18 апреля 2010

Я реализовал пользовательские компоненты MXML и хотел бы передать параметры конструктору:

 newUser = new userComp("name");

вместо использования методов set.

Возможно ли это, если пользовательские компоненты были встроены в MXML (с методом initialize=myPseudoCostructor()?)

Или я могу установить параметр только с дополнительной строкой кода?

Ответы [ 3 ]

5 голосов
/ 19 апреля 2010

Вы не можете передавать переменные в конструктор компонента MXML. Я даже не верю, что возможно определить конструктор в компоненте MXML, хотя я могу ошибаться. Однако вы можете настроить свойства со значениями по умолчанию, которые будут изменены после создания.

Вы также можете создать функцию инициализации, которая также вызывается после постройки.

3 голосов
/ 20 февраля 2013

Я недавно столкнулся с этой проблемой - вы можете создать функцию инициализации, которая возвращает компонент:

Внутри компонента (вызывается, ради аргумента, MyComponent):

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

    //Add constructor code here

    return this;    
}

... при создании компонента вы можете вызвать так:

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

Поскольку он возвращает объект, вы можете рассматривать его как конструктор. В последнее время мне приходилось часто использовать этот метод, кажется, лучший способ обойти проблему.

1 голос
/ 08 декабря 2011
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"/>
...