Esta es una simple galería en Flex que se carga desde xml. Para los novatos como yo, es un lindo aprendizaje.
Usé FlashDevelop 3 Beta 2 y el Flex SDK Open Source para compilar esto.
Primero el MXML:
Código :
<?xml version="1.0"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="conf.send()">
Cuando se termina de crear la aplicación se llama al método send del conf que es el id del siguiente objeto httpservice que usamos para cargar el xml.
Código :
<mx:HTTPService id="conf" url="config.xml" useProxy="false" result="httpResult(event)"/>
Cuando haya cargado satisfactoriamente, el xml pide un resultado y llama a httpResult con el parámetro event que es un indicador del evento que tuvo lugar durante la llamada
Código :
<mx:Style source="estilos.css"/>
Incluímos la hoja de estilos para estilizar cada componente
Código :
<mx:Parallel id="efecto" target="{imago}">
Creamos una composición de efectos, vamos a usar los siguientes Blur y Fade en paralelo:
Código :
<mx:Blur id="desenfoque" blurXFrom="0" blurXTo="0" blurYFrom="50" blurYTo="0"/>
<mx:Fade id="entrar" target="{imago}" alphaFrom="0" alphaTo="1" duration="700"/>
</mx:Parallel>
Algo de código, vamos por partes como decía mi amigo Jack:
Código :
<mx:Script> <![CDATA[ import mx.rpc.events.ResultEvent; import mx.controls.Alert; import mx.effects.Fade; import mx.effects.easing.Bounce;
Importamos cuatro clases para manejar el ResultEvent del HTTPService, un cuadro de alerta, para desvanecer y para el movimiento de rebote.
Código :
private var desvanecer:Fade = new Fade();
hacemos un objeto efecto Fade
Código :
private function httpResult(event:ResultEvent):void
{
gals.selectedIndex = 0;
dg.selectedIndex = 0;
}
Al inicio está seleccionada la primera imagen en el datagrid:
Código :
private function prueba():void
{
dg.selectedIndex = 0;
//Alert.show("hola", "Alerta");
}
]]>
</mx:Script>
Listo con el script, no hace falta más que para eso en este caso específico.
Código :
<mx:Panel title="{conf.lastResult.encabezado}" top="10" left="20" right="20" width="500" height="400" layout="absolute" horizontalAlign="center">
Recuerdan que el id del httpService era conf? Bueno, en el resultado, que es un xml, buscamos el tag <encabezado> y lo ponemos como título del panel.
Código :
<mx:Image id="imago" dataChange="efecto.end();efecto.play();" data="{gals.selectedItem.carpeta}/{dg.selectedItem.fuente}" horizontalAlign="center" left="20" right="210" top="20" bottom="20"/>
Bloque de la imagen, cuando cambie el origen de datos, primero finaliza el efecto Fade Blur por si estaba a la mitad de uno y luego lo arranca de nuevo. El dato lo obtiene primero: tomando como carpeta la etiqueta <carpeta> dentro del item seleccionado en la datagrid de galerías, (ya verán más abajo), y el nombre de archivo, del item seleccionado que se encuentra dentro de la galería, que lo cargamos en otra data grid.
Código :
<mx:TextArea id="ta" text="{dg.selectedItem.describe}" textAlign="left" height="100" right="20" left="300" top="20" />
Una simple descripción de la imagen, miren que se toma del item seleccionado, de su etiqueta <describe>
Código :
<mx:DataGrid id="gals" itemClick="prueba()" dataProvider="{conf.lastResult.galerias.galeria}" height="70" top="130" left="300" right="20">
Aquí se pone áspero, esta es la DataGrid, un componente del FlexSDK, que funciona como repositorio de datos, aquí vamos a almacenar las galerías que tengamos, no las imágenes que contenga. Cuando seleccionemos una, nos carga en la DataGrid de más abajo las imágenes dentro de esa galería y pone la primera imagen, según la función prueba().
Lo siguiente es sencillo, carga el título general "Seleccione una galería" (ya verán en el xml) como título de este bloque DataGrid y el título de cada galería en las filas (por más que dice columnas:)
Código :
<mx:columns>
<mx:DataGridColumn headerText="{conf.lastResult.galerias.titulo}" dataField="titulo"/>
</mx:columns>
</mx:DataGrid>
En este siguiente DataGrid es donde almacenamos las imágenes de cada galería, pueden ver que se carga como título del bloque DataGrid el título de la galería y en cada fila los nombres de imagen
Código :
<mx:DataGrid id="dg" dataProvider="{gals.selectedItem.imagen}" height="120" top="210" left="300" right="20">
<mx:columns>
<mx:DataGridColumn headerText="{gals.selectedItem.titulo}" dataField="titulo"/>
</mx:columns>
</mx:DataGrid>
</mx:Panel>
</mx:Application>
Los estilos que van en estilos.css, no hace falta explicar estos, son bastante autoexplicables:
Código :
Panel {
borderColor: #663300;
borderAlpha: 0.6;
backgroundAlpha: 0.45;
borderThicknessLeft: 0;
borderThicknessTop: 0;
borderThicknessBottom: 10;
borderThicknessRight: 0;
roundedBottomCorners: true;
cornerRadius: 6;
headerHeight: 20;
dropShadowEnabled: false;
titleStyleName: "mypanelTitle";
}
.mypanelTitle {
letterSpacing: 1;
color: #00ccff;
textAlign: left;
fontFamily: "Trebuchet MS";
fontSize: 12;
fontWeight: bold;
}
DataGrid {
headerColors: #663300, #663300;
borderThickness: 1;
headerStyleName: "mydataGridHeaderStyle";
dropShadowEnabled: true;
backgroundAlpha: 0.5;
}
.mydataGridHeaderStyle {
color: #00ccff;
fontFamily: "Trebuchet MS";
fontSize: 12;
fontWeight: bold;
}
TextArea {
borderStyle: outset;
dropShadowEnabled: true;
}
Esta parte es la única que voy a comentar, y es porque aquí pueden ver que cargué un fondo hecho con Inkscape, que tira lindos y compatibles svg, pero también pueden crear un swf a modo de librería de fondos y marcarlos en los fotogramas clave, por ejemplo, este es el que se distribuye con la aplicación flex libre Adobe Flex Style Explorer. Si no tienen un svg a mano quitan la línea. También sirven imágenes como jpgs pero usé un svg porque se escala bien.
Código :
Application {
backgroundImage: Embed(source="fondo.svg")/*Embed(source="fondos.swf#bluestripe")*/;
backgroundSize: "100%";
}
Y el esquema de xml para cargar las imágenes que se llama config.xml
El bloque galería contendrá las imagenes, y el galerías las galerías donde están cada imagen, bah, se entiende...
Código :
<?xml version="1.0" ?> <encabezado>SKATOS Gallery</encabezado> <galerias> <titulo>Seleccione una galeria</titulo> <galeria> <titulo>Galeria de Plantas</titulo> <carpeta>plantas</carpeta> <imagen> <titulo>Spring</titulo> <fuente>lapacho2.jpg</fuente> <describe>Afiche de primavera sobre los lapachos.</describe> </imagen> <imagen> <titulo>Summer</titulo> <fuente>bambooLueg.jpg</fuente> <describe>Bosque de bamboo al atardecer.</describe> </imagen> <imagen> <titulo>Autumn</titulo> <fuente>arboles.jpg</fuente> <describe>Pintura de unos arboles reflejados en un lago.</describe> </imagen> <imagen> <titulo>Where butterflies fly...</titulo> <fuente>LapachoMariposas.jpg</fuente> <describe>Lapacho con mariposas en las horas postreras del dia.</describe> </imagen> <imagen> <titulo>Creciendo</titulo> <fuente>pollito5.jpg</fuente> <describe>Toma de la animacion de un pollito del corto Creciendo.</describe> </imagen> </galeria> <galeria> <titulo>Infografia e historia</titulo> <carpeta>historia</carpeta> <imagen> <titulo>Imagen</titulo> <fuente>imagen.jpg</fuente> <describe>Una foto.</describe> </imagen> <imagen> <titulo>Hindenburg</titulo> <fuente>infografia.jpg</fuente> <describe>Infografia sobre la tragedia del Hindenburg.</describe> </imagen> <imagen> <titulo>Wall·E</titulo> <fuente>January-Tease-2-thumb.jpg</fuente> <describe>Imagen promocional de Wall·e.</describe> </imagen> <imagen> <titulo>Emir Kusturica anime</titulo> <fuente>pajarraco.jpg</fuente> <describe>Afiche para Emir Kusturica.</describe> </imagen> </galeria> </galerias>
Como ven en este xml las imágenes se pueden organizar en carpetas.
El link de las releases de FlashDevelop es éste:
FlashDevelop Releases
Y builds más a menudo
Builds
Descarga los archivos del tip
Saludos

Por zequi el 30 de Agosto de 2007
Por ego el 30 de Agosto de 2007
pero demando ver el resultado!
Por Jakov! el 30 de Agosto de 2007
Por www.dream-universe.n el 30 de Agosto de 2007
Por Equinoxz28 el 30 de Agosto de 2007
Por Jhony Alex Celso el 31 de Agosto de 2007
... que desfachatez ..
.... JAC (º_º)
Jhony Alex Celso_blog :
... que desfachatez ..
.... JAC (º_º)
Si sigues el tip paso a paso, seguro que verás el ejemplo.
WTF?
Jhony Alex Celso_blog :
... que desfachatez ..
.... JAC (º_º)
como se nota que no leiste el tip. El tip esta super explicado, podes hacerlo perfectamente sin tener los archivos. seamos menos ratas por el FSM!
Por manolo el 04 de Septiembre de 2007
manolo_blog :
Mi amigo, si quieres aprender la herramienta no necesitas ser motivado. Si quieres ver si vale la pena o no, eso ya será cosa tuya. Cristalab no es una casa de Software y, aunque cada quien tenga sus preferencias y trabaje en base a ello, no está para promocionar uno u otro software. La motivación tiene que ser tuya, nosotros ya la tenemos.
Por BiliJou el 05 de Septiembre de 2007
O los que se hacen en bogota online tambien estarian bien.
Por el 05 de Septiembre de 2007
¿Donde esta el enlace a esos cursos ONLINE?, los que he visto son presenciales.
Saludos
Por arturo el 31 de Octubre de 2007
Por LP el 03 de Noviembre de 2007
Por otro el 28 de Noviembre de 2007
Por carlangas el 22 de Enero de 2008
<div class="cita">El payaso ke escribio todo el codigo olvido lo menos importante "EL RESULTADO"...</div>
Por fer el 08 de Febrero de 2008
Por Kler el 15 de Febrero de 2008
Tengo un problemilla...No se me cargan las imágenes y no sé de qué puede ser, me he copiado el ejemplo tal cual, y he creado la hoja de estilos y el xml. No me da ningún tipo de error.
Por pellom el 14 de Abril de 2008
Por el 21 de Abril de 2008
porque pasa eso???
Por adriesp el 26 de Abril de 2008
Por EddyHG el 03 de Febrero de 2009
Por EddyHG el 03 de Febrero de 2009
Por Marcelificus el 04 de Agosto de 2009
Por stephanie y erika el 07 de Octubre de 2009
Por lala el 15 de Diciembre de 2009
Por WebMasteRD el 12 de Enero de 2010
Podemos hacerle un automatico, es decir, que las imagenes corran automaticante en un tiempo definido?
Por SuChile el 20 de Enero de 2010
Por Hozher el 22 de Enero de 2010
Por El man el 23 de Febrero de 2010