mx组件中的Repeater类似与sprak中的DataGroup,可以根据数据源循环一些组件,例如:一组RadionButton。
网上的很多例子都是用mxml写的,本文将主要介绍用as来编写Repeater。
1 先定义好Repeater所在的容器,例如下面代码
<mx:Tile direction="horizontal" borderStyle="none" id="tile"
horizontalGap="0" verticalGap="0" paddingLeft="0" paddingTop="0" paddingBottom="0" paddingRight="0"> <mx:Repeater id="rp" > </mx:Repeater> </mx:Tile>
2 编写Repeater的childDescriptors
var descriptorProps:Object = {};
descriptorProps.type = RadioButton;
descriptorProps.document = this;
descriptorProps.propertiesFactory = radioPropFac;
descriptorProps.events = {change:"radioButton_change"};
var radioDescriptor:UIComponentDescriptor = new UIComponentDescriptor(descriptorProps);
rp.dataProvider = ac2;
rp.childDescriptors = [radioDescriptor];
rp.initializeRepeater(tile, true);
3 编写RadioButton的属性
private function radioPropFac():Object {
var obj:Object = {};
obj.label = rp.currentItem.name;
obj.group = group;
obj.maxWidth=120;
return obj;
}