<mx:TileList id="tl" dataProvider="{ac}" width="100%" height="90%" rowHeight="40" paddingLeft="10"/>
要对tl添加一个itemRenderer,如果直接在mx标签里面添加itemRenderer就可以。
<?xml version="1.0" encoding="utf-8"?> <mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"> <mx:CheckBox label="{data.name}" selected="{data.sel}" click="{data.sel=!data.sel}"/> </mx:HBox>
但是如果要用as语法了对tl添加一个itemRenderer就有点麻烦了
第一种方法是:
<?xml version="1.0" encoding="utf-8"?> <mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" implements="mx.core.IFactory"> <mx:CheckBox label="{data.name}" selected="{data.sel}" click="{data.sel=!data.sel}"/> <mx:Script> <![CDATA[ import component.CheckBoxRenderer; public function newInstance():*{ //实例化渲染器,实现具体功能 return new CheckBoxRenderer(); } ]]> </mx:Script> </mx:HBox>
在mxll标签里面实现IFactory接口重写newInstance方法
添加的方法是
var cbr:CheckBoxRenderer=new CheckBoxRenderer();
tl.itemRenderer=cbr;
第二种方法是:
var fac:IFactory=new ClassFactory(CheckBoxRenderer); tl.itemRenderer=fac;