Comunidad de diseño web y desarrollo en internet online

Como llenar un DataGroup o TileGroup en Flash Builder 4

Citar            
MensajeEscrito el 27 May 2011 02:41 am
Saludos,estoy recomenzando un proyecto que estaba haciendo en sólo en Adobe Flash CS5 pero tengo la intuición y algunos consejos de que saldría mejor en Flash Builder 4 por la cuestión de mejor llamada a servicios web,pues va a ser una tienda,etc.

Bueno la cuestión aquí es que estoy cargando un xml que corresponde a varios productos (nombre , url de su respectiva imagen,id, etc) los cargo así:


Código ActionScript :

 var auxURLLoader:URLLoader=new URLLoader();
            var urlXML:String=dropDown1.selectedItem.url_xml;
            var urlRequest:URLRequest=new URLRequest(urlXML);
            auxURLLoader.load(urlRequest);
            auxURLLoader.addEventListener(Event.COMPLETE,onCompleteXML);


      private function onCompleteXML(e:Event):void{
            var xml:XML=XML(e.target.data) 
               
            var xmlList:XMLList = xml.articulo; 
            var xmlListCollection:XMLListCollection=new XMLListCollection(xmlList);
               
         
            for each (var itemXML:XML in xml.piel){
                     
               var rutaAbsoluta_thumb:String="http://direccionweb/plastico/"+dropDownPlasticoS.selectedItem.path + itemXML.@url_thumb;
               Alert.show("rutaAbsoluta_thumb = "+rutaAbsoluta_thumb);
                        
               dgPlasticos.dataProvider.addItem({data:itemXML.@nombre,url_thumb:rutaAbsoluta_thumb});
                        
               Alert.show(String(dgPielesPunta.numChildren));
               
            }
            
      }




Pero con esto no logro ver que se agreguen los thumbnails al contenedor (ahorita un DataGroup , que ya me recomendaron mejor usar un TileGroup).

Les pido su ayuda porfas, me he trabado en esto que creo es sencillo pero bueno, aún verde en los componentes Flex.

Muchas gracias.

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

chrome
Citar            
MensajeEscrito el 27 May 2011 02:29 pm
¿Que itemRenderer estás usando?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 27 May 2011 05:45 pm
Qué tal Jorge, este es mi itemRederer:



Código ActionScript :

<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
            xmlns:s="library://ns.adobe.com/flex/spark" 
            xmlns:mx="library://ns.adobe.com/flex/mx" 
            autoDrawBackground="true" width="107" height="109">
   
   <s:Label text="{data.nombre}" y="73" width="107" horizontalCenter="0" textAlign="center" fontWeight="bold" height="34"/>
   <mx:Image source="{data.url_thumb}" x="0" y="0" width="106" height="69" scaleContent="false"/>
   
</s:ItemRenderer>

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

chrome
Citar            
MensajeEscrito el 27 May 2011 05:46 pm
Qué tal Jorge, este es mi itemRenderer:



Código ActionScript :

<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
            xmlns:s="library://ns.adobe.com/flex/spark" 
            xmlns:mx="library://ns.adobe.com/flex/mx" 
            autoDrawBackground="true" width="107" height="109">
   
   <s:Label text="{data.nombre}" y="73" width="107" horizontalCenter="0" textAlign="center" fontWeight="bold" height="34"/>
   <mx:Image source="{data.url_thumb}" x="0" y="0" width="106" height="69" scaleContent="false"/>
   
</s:ItemRenderer>

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

chrome
Citar            
MensajeEscrito el 28 May 2011 04:14 pm
Esta mal la estructura del DP, entonces sería:

dgPlasticos.dataProvider.addItem({nombre:itemXML.@nombre,url_thumb:rutaAbsoluta_thumb};

Mira que no haya problemas de ruta a la imagen, si lo peurbas desde dentro de Flex, que se haya copiado la carpeta de imágenes a bin-debug (si estás debugeando)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 05 Jun 2011 03:25 am
Gracias Jorge, no había notado esa línea :D. Lo modifiqué pero sigo sin lograr aún que se carguen las imágenes . Las estoy cargando de un servidor externo (un sito en 000webhost), primero creé otro proyecto para probar llenando el DataGroup con imágenes usando imágenes que había subido a ese servidor y no hubo problemas.
Sigo intentando, aún no le encuentro . Gracias!

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

chrome
Citar            
MensajeEscrito el 09 Jun 2011 03:19 am
Saludos, logré agregar las imágenes pero usando un TileGroup en vez del DataGroup, sólo que me voy fijando que TileGroup no soporta ItemRenderer.
Y tuve que utilizar addElement en vez de addItem :

Código ActionScript :

 var rutaAbsoluta_thumb:String="http://direccionweb/plastico/"+dropDownPlasticoS.selectedItem.path + itemXML.@url_thumb;

var thumb:Image=new Image();
               thumb.source=rutaAbsoluta_thumb;
               
               thumb.width=50; thumb.height=50;

dgPlasticos.addItem(thumb);


Todos los ejemplos que he podido ver hasta ahorita sólo agregan a los contenedores información estática como por ejemplo éste :http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf63611-7ffe.html

Gracias, espero su ayuda y sugerencias!

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

chrome
Citar            
MensajeEscrito el 09 Jun 2011 08:54 pm
Saludos, bendita solución que encontré:

creé un ArrayCollection el cual va a ser el dataProvider del DataGroup:



Código ActionScript :

[Bindable]
         public var arrayItems:ArrayCollection=new ArrayCollection();

 



y la función quedaría:

Código ActionScript :

         private function onCompleteXML(e:Event):void{
            var xml:XML=XML(e.target.data); 
               
            var xmlList:XMLList = xml.material; 
            var xmlListCollection:XMLListCollection=new XMLListCollection(xmlList);
               
            
              arrayItems=new ArrayCollection();
            
            for each (var itemXML:XML in xml.material){
               var rutaAbsoluta_thumb:String="http://direccionweb/plastico/"+dropDownPlasticoS.selectedItem.path + itemXML.@url_thumb;
               
                    arrayItems.addItem({nombre:itemXML.@nombre,url_thumb:rutaAbsoluta_thumb});

               
            }
            
         
         }



y el DataGroup de esta forma:

Código ActionScript :


         <s:Scroller width="247" height="266" y="75"  x="10">
            <s:DataGroup name="dgPlasticos" itemRenderer="PlasticosRenderer" width="238" height="253" x="-1.9" y="116.45" dataProvider="{arrayItems}" clipAndEnableScrolling="true" >
               <s:layout>
                  <s:TileLayout  />
               </s:layout>               
            </s:DataGroup>
         </s:Scroller>



Y gracias a Dios funcionando como esperaba :D, que les sirva también ;).

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

chrome

 

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