hola mis estimados pues aqui molestando de nuevo y con la novedada q aun no encontramos la manera de como solucionar este detalle, aun con la ayuda jejeje

con sultando con el sr google llegana diferentes soluciones pero al implentarlas no mas no logramos solucionarlo
aqui les dejo como lo estamos implementando tal ves y estamos haciendo algo mal o nos falta algo q es lo mas seguro.
de antemano les agradeco su tiempo
itemrenderer de un canvas:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="422" height="48" creationComplete="onInit();">
<mx:Script source="as/canvasExterno.as" />
<mx:Canvas x="2.5" y="1" width="421" height="29" id="HabiCheck">
</mx:Canvas>
</mx:Canvas>
//*********************************************************************************************//
as del itemrenderer del canvas:
import events.StateEv;
import mx.states.State;
import flash.net.NetConnection;
import flash.net.Responder;
import mx.collections.*;
import mx.controls.*;
private var conexion:NetConnection;
private function onInit():void
{
conexion = new NetConnection();
conexion.connect("./amfphp/gateway.php");
parentApplication.addEventListener(StateEv.STATEEV,carga);
}
public function onFault(fault:String):void
{ Alert.show(fault,"ERROR",mx.controls.Alert.OK); }
private function carga(evento:StateEv):void
{
var obj:Object=new Object();
if(evento.label=="envio")
{
obj=evento.data;
var id:Number=obj.id_periodo;
gethabitacion(id);
}
if(evento.label=="envio id combo")
{
obj=evento.data;
var id_combo:Number=obj.id_combo;
Alert.show("combo"+id_combo);
}
}
public function gethabitacion(id:Number):void
{conexion.call("code.gethabitacion", new Responder(check,onFault),id);}
public function check(Result:Array):void
{
// Alert.show("prueba de que enbtra ");
//Alert.show("conteniod result ="+Result[0].toString());
if(Result[0]!=0)
{
var y:Number = 5;
var x:Number = 10;
var i:Number = 0;
HabiCheck.removeAllChildren();
while(i<Result.length)
{
for( var o:Number=0; o<3 && i<Result.length; o++)
{
//Alert.show("Dibuja check habitacion");
var check:CheckBox = new CheckBox();
check.name=Result[i].id_thab;
check.label=Result[i].nombre;
check.id="habitacion_"+i;
check.selected=false;
check.x=x;
check.y=y;
i=i+1;
HabiCheck.addChild(check);
x=x+120;
}
y=y+20;
x=10;
}
}
}
//*************************************************************************************************************//
itemrenderer del checkbox:
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="82" height="38" >
<mx:CheckBox x="4" y="7" label="Cerrar" name="cierre_{data.fecha}" id="checkCierre" />
</mx:Canvas>
//*************************************************************************************************************//
estructura del datagrid
<mx:DataGrid horizontalCenter="20" id="contiene" top="84" width="490" height="355" dataProvider="{tarifasdata2}" creationComplete="onInit2();">
<mx:columns>
<mx:DataGridColumn width="110" id="fecha" headerText="Fechas Periodo" dataField="fecha"/>
<mx:DataGridColumn width="80" id="cierra" headerText="Cerrar" itemRenderer="modules.checkExterno"/>
<mx:DataGridColumn headerText="Habitaciones" dataField="col3" itemRenderer="modules.canvasExterno" />
</mx:columns>
</mx:DataGrid>