参数可以自定义的在组件中进行设置
方法代码:
方法执行:
视图:
[img]http://dl.iteye.com/upload/attachment/340681/8ee7d36b-16cd-304e-9e45-c7cce603f55d.png[/img]
方法代码:
package pizazz.flex4.utility{
public class ParamUtil{
public function ParamUtil(){}
public static function setParam(source:Object,
param:Object, validator:Boolean = true):Boolean{
if(source == null){
return false;
}
try{
for(var _field:String in param){
if(source.hasOwnProperty(_field)){
var _param:Object = param[_field];
if(validator){
if(validatorParam(_param)){
source[_field] = _param;
}
}else{
source[_field] = _param;
}
}
}
}catch(_err:Error){
return false;
}
return true;
}
public static function validatorParam(source:Object):Boolean{
if(source == null){
return false;
}else if(source is String && source == ""){
return false;
}else if(source is Number && isNaN(Number(source))){
return false;
}
return true;
}
}
}
方法执行:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600">
<s:layout>
<s:HorizontalLayout />
</s:layout>
<fx:Script>
<![CDATA[
import pizazz.flex4.utility.ParamUtil;
private function buttonFactory(param:Object = null):Button{
const _button:Button = new Button();
ParamUtil.setParam(_button, param);
return _button;
}
private function addButtonA():void{
addElement(buttonFactory({
"label": "按钮+",
"width": 100
}));
}
private function addButtonB():void{
addElement(buttonFactory());
}
]]>
</fx:Script>
<s:Button width="100" label="生成按钮A" click="addButtonA()" />
<s:Button width="100" label="生成按钮B" click="addButtonB()" />
</s:Application>
视图:
[img]http://dl.iteye.com/upload/attachment/340681/8ee7d36b-16cd-304e-9e45-c7cce603f55d.png[/img]