我已經實現了一個MXML自定義組件,我想參數傳遞給構造函數:基於MXML的自定義Flex組件傳遞構造函數的參數
newUser = new userComp("name");
,而不是使用set方法。
這是可能的,如果自定義組件已建成MXML(與initialize=myPseudoCostructor()
方法?)
或者我只能設定參數與額外的代碼行?
我已經實現了一個MXML自定義組件,我想參數傳遞給構造函數:基於MXML的自定義Flex組件傳遞構造函數的參數
newUser = new userComp("name");
,而不是使用set方法。
這是可能的,如果自定義組件已建成MXML(與initialize=myPseudoCostructor()
方法?)
或者我只能設定參數與額外的代碼行?
您不能將pass variables轉換爲MXML組件的構造函數。我甚至不相信在MXML組件中可以使用define a constructor,儘管我可能是錯的。但是,您可以設置具有默認值的屬性,並在構建後進行更改。
您也可以創建一個初始化函數,該函數在構造後也被調用。
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"/>
我最近遇到了這樣的問題 - 你可以做的就是創建一個初始化函數返回組件:
的組件內(稱,爲了便於討論,爲MyComponent):
public function init(...args):MyComponent {
//Add constructor code here
return this;
}
...創建組件時,你可以調用這樣的:
var myComp:MyComponent = new MyComponent().init(args);
因爲它漚甕的對象,你可以把它當作一個構造函數。我最近不得不使用這種方法,似乎是解決問題的最佳方法。
好吧,所以如果我用mxml創建一個自定義組件,我只能在稍後調用它的方法時設置這些變量。 – aneuryzm 2010-04-19 06:15:47
您可以在MXML組件中定義構造函數,甚至可以在該構造函數中使用參數;但限制是構造函數的所有參數必須是可選的。 – Panzercrisis 2013-06-24 13:44:15
我收到了'找到多個構造函數定義。 代碼中可能沒有定義構造函數。「它說[這裏](http://livedocs.adobe.com/flex/3/html/help.html?content=basic_as_2.html)(在註釋中),這是明確禁止。 – dm78 2013-12-05 05:29:28