2010-04-18 77 views
7

我已經實現了一個MXML自定義組件,我想參數傳遞給構造函數:基於MXML的自定義Flex組件傳遞構造函數的參數

newUser = new userComp("name"); 

,而不是使用set方法。

這是可能的,如果自定義組件已建成MXML(與initialize=myPseudoCostructor()方法?)

或者我只能設定參數與額外的代碼行?

回答

5

您不能將pass variables轉換爲MXML組件的構造函數。我甚至不相信在MXML組件中可以使用define a constructor,儘管我可能是錯的。但是,您可以設置具有默認值的屬性,並在構建後進行更改。

您也可以創建一個初始化函數,該函數在構造後也被調用。

+0

好吧,所以如果我用mxml創建一個自定義組件,我只能在稍後調用它的方法時設置這些變量。 – aneuryzm 2010-04-19 06:15:47

+0

您可以在MXML組件中定義構造函數,甚至可以在該構造函數中使用參數;但限制是構造函數的所有參數必須是可選的。 – Panzercrisis 2013-06-24 13:44:15

+0

我收到了'找到多個構造函數定義。

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

我最近遇到了這樣的問題 - 你可以做的就是創建一個初始化函數返回組件:

的組件內(稱,爲了便於討論,爲MyComponent):

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

    //Add constructor code here 

    return this;  
} 

...創建組件時,你可以調用這樣的:

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

因爲它漚甕的對象,你可以把它當作一個構造函數。我最近不得不使用這種方法,似乎是解決問題的最佳方法。

相關問題