Acceder a los itemRenderer de un componente lista en Flex

March 21st, 2009 Posted in AS3, Básico, Flex

Este es un tip sencillo pero que me dió algún que otro dolor de cabeza al querer aplicar unos efectos sobre los componentes utilizados como itemRenderes dentro de un componente tipo lista en Flex. Se trata de cómo poder acceder a estos componentes para manipular su contenido a través de Actionscript.

Para acceder al componente del itemRenderer en concreto utilizaremos indexToItemRenderer, pasándole como parámetro el index del ítem que queremos obtener.

El detalle importante que debemos tener en cuenta es que no podemos referenciar un objeto que no sea visible dentro de la zona del scroll, ya que hasta entonces devolvería valor null. Para ello deveremos realizar la comprobación con isItemVisible, y ejecutar las acciones solo sobre los componentes visibles.

var total:uint = tileList.dataProvider.length;
for (var i:uint = 0; i <total; i++)
{
    if (tileList.isItemVisible(tileList.dataProvider[i]) == true)
    {
        var item:Object = tileList.indexToItemRenderer(i);
        // resto de implementación sobre los componentes
    }
}

Comparte:
  • Meneame
  • Twitter
  • Facebook
  • Google Bookmarks
  • del.icio.us
  • Technorati
  • email
  • Print

Post relacinonados:

  1. Asignar una clase ActionScript 3 a un itemRenderer en Flex
  2. Cargar XML en un componente List en Actionscript 3
  3. Ejemplo de Zoom con lupa en Flex
  4. Panel de zoom de imágenes en Flex
  5. Modificar datos en componentes Flex con ItemEditors

2 Responses to “Acceder a los itemRenderer de un componente lista en Flex”

  1. Javi Says:

    Grande!!!
    gracias por compartirlo, acabo de empezar con el flex y me vuelvo loco con todas estas nuevas propiedades y métodos, llevaba buscado esto una hora en la referencia :)


  2. isantos Says:

    muy bueno....
    ya me he quebrado la cabeza para acceder a los itemRenderer
    gracias por el aporte
    Te invito a que visites y comentes mi blog
    http://www.ddsmedia.net/blog


Leave a Reply