2010-04-18 17 views

Odpowiedz

5

Nie można pass variables w konstruktorze komponentu MXML. Nie wierzę nawet, że jest możliwe define a constructor w komponencie MXML, chociaż mógłbym się mylić. Można jednak ustawić właściwości, które mają wartości domyślne i są zmieniane po zakończeniu budowy.

Można również utworzyć funkcję inicjującą, która jest również wywoływana po zakończeniu budowy.

+0

ok, więc jeśli utworzę komponent niestandardowy z mxml, mogę ustawić zmienne później tylko w jego metodach. – aneuryzm

+0

Można zdefiniować konstruktor w składniku MXML i można nawet mieć parametry w tym konstruktorze; ale ograniczenie jest takie, że wszystkie parametry konstruktora muszą być opcjonalne. – Panzercrisis

+0

Otrzymuję 'Znaleziono wiele definicji konstruktorów. Konstruktora nie można zdefiniować w kodzie

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"/> 
3

I niedawno napotkasz ten problem - co można zrobić, to utworzyć funkcję inicjalizacji która zwraca komponent:

Wewnątrz składnika (zwanego, czysto teoretycznie, MyComponent):

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

    //Add constructor code here 

    return this;  
} 

... podczas tworzenia komponentu można wywołać tak:

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

jak ret urns obiekt, można traktować go jako konstruktora. Ostatnio bardzo często stosowałem tę metodę, wydaje się najlepszą metodą na obejście problemu.

Powiązane problemy