Comunidad de diseño web y desarrollo en internet online

Ayuda con itemRender en Tilelist

Citar            
MensajeEscrito el 30 Sep 2008 03:32 pm
Hola a todos!!!

Estoy empezando a enterder flex y tengo un problema que parece simple pero que no encuentro la solucion :oops:

Tengo un tilelist con un componente de itemrender. El porposito es que cuando se hace click en un item este me devuelva el id del item para asi poder cargar los datos relacionados con el item. Todo esto ya lo hice y funciona bien.

Ahora en problema es que al seleccionar un item de la lista, se debe cambiar el color del borde de un canvas que se encuentra dentro del itemrender, a anaranjado, asi para indicar que el item ha sido seleccionado. Con lo que si por ejemplo tengo seleccionado un item y al hacer click en otro item de la lista, los items no seleccionados deben cambiar de color a gris para indicar que no estan seleccionados.

Aqui esta el codigo:

Código :

 <mx:TileList id="tlist0" selectionColor="#FFFFFF" rollOverColor="#FFFFFF" itemClick="readXML(event)"
        x="295"
        height="98" width="390" 
        columnCount="6" rowCount="1" 
        direction="horizontal" 
        dataProvider="{myDP}" 
        allowMultipleSelection="false"  
        itemsChangeEffect="{dataChangeEffect1}" 
        >
        <mx:itemRenderer>
        <mx:Component>
<mx:Canvas    xmlns:mx="http://www.adobe.com/2006/mxml" width="50" height="98"  >
   <mx:Image source="@Embed(source='../../../../../assets/layout/sceneBar/sceneSquare.png')" y="5"  buttonMode="true"/>
   <mx:Canvas buttonMode="true" id="thumbnailSceneID" x="10" y="27" 
      width="41" height="41" backgroundColor="#FFFFFF" 
      borderThickness="1" borderStyle="solid" borderColor="#BEBEBE" />
   <mx:Label buttonMode="true" id="Nombre" text="{data.itemName}" y="10" x="8" fontSize="10" fontFamily="EmbeddedBase02" color="#5D5D5D"/>   
</mx:Canvas>
</mx:Component>
</mx:itemRenderer>
        </mx:TileList>


Gracias!

Por Lunaty

Claber

118 de clabLevel



Genero:Femenino  

Flash Developer & RM Email Support for Google

firefox
Citar            
MensajeEscrito el 30 Sep 2008 05:07 pm
Conviene que crees un componente aparte (Menú File->New MXML Component), lo importes y luego lo asignes. Aquí un ejemplo de un componente basado en un Canvas que cambia su estilo cuando es clicado

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="390" height="40" styleName="{this.data.status}">
<mx:Style>
   .idle {
        backgroundColor: #FFFFFF;        
        backgroundAlpha: 1;
     }
    .pending {
        backgroundColor: #FFCC00;        
        backgroundAlpha: 1;
     }
    .live{
       backgroundColor: #33CC00;
       backgroundAlpha: 1;
    }
</mx:Style>
<mx:Script>
   <![CDATA[
      private var style:String
      [Bindable]
      private var statusIcon:String = "images/idle.gif"
            
      public function setCurrentStyle(msg:String):void{         
         this.styleName = msg
         status.source = "images/"+msg+".gif"          
      }
      public function get userName():String{
         return data.userName
      }   
   ]]>
</mx:Script>
   <mx:Image top="3" left="5" scaleContent="true" autoLoad="true" source="images/{data.data.pic}" width="32" height="32"/>
   <mx:Text x="45" y="5" text="{data.userName} - {data.data.introduction}" width="300"/>
   <mx:Image x="358" y="9" source="images/{data.status}.gif" id="status"/>
   
</mx:Canvas>


En este caso en particular el estilo es enviado al itemRenderer de la siguiente forma (sabiendo el index):

Código ActionScript :

var child:Object = peopleList.indexToItemRenderer(index)
if (child) child.setCurrentStyle(status)


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 30 Sep 2008 07:11 pm
Gracias!!!!! me funciono de perlas tu ejemplo :D

Por Lunaty

Claber

118 de clabLevel



Genero:Femenino  

Flash Developer & RM Email Support for Google

firefox
Citar            
MensajeEscrito el 03 Mar 2010 02:34 pm
Bueno pues mi problema es que necesito que al seleccionar un item del TileList aplicar un efecto o cambiar de estado a este item, que de hecho es un componente que he creado y he importado. Pero para asignar estados y efectos necesito asignar un id al componente y esto no me es permitido. En esencia lo que necesito hacer es lo siguiente: como que inicialmente muestro solo una imagen y un nombre. Luego al dar click en el item seleccionado se expanda este y aparezcan mas informaciones acerca del elemento seleccionado. Al vovler a dar click que regrese a su estado anterior. Y asi sucesivamente por cada elemento que seleccione. Ayudenme por favor, gracias de antemano.

Por Vlade9

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Mar 2010 02:59 pm
Abre un hilo nuevo para tu problema

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.