este es mi codigo
Código :
//Importamos las clases para el Iterator y los Estilos import mx.data.components.datasetclasses.DataSetIterator import mx.styles.CSSStyleDeclaration //Estilo de la cabecera del grid var headerStyles = new CSSStyleDeclaration(); headerStyles.setStyle("textAlign", "center"); procesos_grid.setStyle("headerStyle", headerStyles); procesos_grid.setStyle("themeColor", "haloBlue"); //Declaramos variables var ordenarHacia:String = new String("asc"); var ordenarPor:String = new String(); var miXML:XML = new XML(); var datosProcesos:Array = new Array(); var alOrdenar:Object = new Object(); var alClicar:Object = new Object(); /***************************** EMPEZAMOS *********************************/ for (i=0; i<mi_Xml.firstChild.childNodes.length; i++){ createEmptyMovieClip("container"+i, i); loadMovie(mi_xml.firstChild.childNodes[i].firstChild.attributes.rutas, this["container"+i]); } //Cargamos el XML miXML.ignoreWhite = true; miXML.onLoad = function(success){ //Cargamos y llenamos el array if (success){ for (i=0; i<miXML.firstChild.childNodes.length; i++){ createEmptyMovieClip("container"+i, i); datosProcesos.addItem({Ubicacion: miXML.firstChild.childNodes[i].firstChild, //Utilizamos parseInt() para convertir los textos a número Precio: (miXML.firstChild.childNodes[i+1].firstChild), Foto: (miXML.firstChild.childNodes[i+2].firstChild)}); } //Asignamos al DataSet y al DataGrid datos.items = datosProcesos; datos.filtered = false; procesos_grid.dataProvider = datos.dataProvider; //Propiedades del DataGrid procesos_grid.resizableColumns = false; procesos_grid.getColumnAt(0).width = 215; procesos_grid.getColumnAt(1).width = 45; procesos_grid.getColumnAt(2).width = 100; procesos_grid.getColumnAt(2).height = 75; procesos_grid.getColumnAt(0).setStyle("textAlign", "left"); procesos_grid.getColumnAt(1).setStyle("textAlign", "right"); procesos_grid.getColumnAt(2).setStyle("textAlign", "right"); //Deshabilitamos ordenación de las columnas, pero no las columnas for (i=0; i<3; i++){ procesos_grid.getColumnAt(i).sortOnHeaderRelease = false; } } } miXML.load("xml/libros.xml"); /**************************** EVENTOS *******************************/ // ORDENAMOS alOrdenar.headerRelease = function(objeto){ //Recogemos la ordenación actual miOrdenacion = datos.getIterator(); //Cogemos el nombre de la columna ordenarPor = objeto.target.getColumnAt(objeto.columnIndex).columnName; if (ordenarHacia == "asc"){ miOrdenacion.sortOn([ordenarPor], 1); ordenarHacia = "des"; } else if (ordenarHacia == "des"){ miOrdenacion.sortOn([ordenarPor], 2); ordenarHacia = "asc"; } //Aplicamos el nuevo orden datos.setIterator(miOrdenacion); } procesos_grid.addEventListener("headerRelease", alOrdenar); // FILTRAMOS alClicar.click = function(){ //Si no hay filtro lo ponemos y cambiamos el texto en el botón if (datos.filtered == false){ datos.filtered = true; datos.filterFunc(); filtrar_btn.label = "Quitar Filtro"; } //Si hay filtro lo quitamos y cambiamos el texto en el botón else if (datos.filtered == true){ datos.filtered = false; filtrar_btn.label = "Filtrar"; } //Función filterFunc de Flash datos.filterFunc = function(registro:Object) { return(registro.Memoria >= maxMem_txt.text); } } filtrar_btn.addEventListener("click", alClicar);