<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>carlosrovira.com &#187; Flex</title>
	<atom:link href="http://www.carlosrovira.com/blog/categoria/macromedia-flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.carlosrovira.com/blog</link>
	<description>Rich Internet Expertise</description>
	<lastBuildDate>Wed, 14 Jul 2010 08:51:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>eFirmatic &#8211; Nuevo Producto AIR 2.0</title>
		<link>http://www.carlosrovira.com/blog/2010/07/efirmatic-nuevo-producto-air-2-0/</link>
		<comments>http://www.carlosrovira.com/blog/2010/07/efirmatic-nuevo-producto-air-2-0/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 23:44:06 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=736</guid>
		<description><![CDATA[Por fin el producto que terminamos poco antes del lanzamiento de Adobe AIR 2.0 está ya disponible para todo el público. Se trata de eFirmatic-Desktop, un producto de escritorio pensado para firmar documentos PDF y Facturae. Esta aplicación ha sido creada para la marca eFirmatic y Motor de Firma, partners de Codeoscopic.

La aplicación hace uso [...]]]></description>
			<content:encoded><![CDATA[<p>Por fin el producto que terminamos poco antes del lanzamiento de <strong>Adobe AIR 2.0</strong> está ya disponible para todo el público. Se trata de <a href="http://www.motordefirma.es/productos/efirmatic-desktop/">eFirmatic-Desktop</a>, un producto de escritorio pensado para firmar documentos <strong>PDF</strong> y <strong>Facturae</strong>. Esta aplicación ha sido creada para la marca <a href="http://www.efirmatic.es/">eFirmatic</a> y <a href="http://www.motordefirma.es/">Motor de Firma</a>, partners de <a href="http://www.codeoscopic.com">Codeoscopic</a>.</p>
<p><a href="http://www.motordefirma.es/productos/efirmatic-desktop/"><img src="http://www.carlosrovira.com/blog/wp-content/uploads/2010/07/eFirmaticDesktop1-300x214.png" alt="eFirmaticDesktop1" title="eFirmaticDesktop1" width="300" height="214" class="aligncenter size-medium wp-image-737" /></a></p>
<p>La aplicación hace uso intensivo de las nuevas capacidades de <strong>AIR 2.0</strong> para comunicarse de forma nativa con procesos del sistema operativo (NativeProcess API). Además ha sido diseñada pensando en la sencillez máxima: Simplemente basta con arrastrar los documentos que queremos firmar a la aplicación y hacer &#8220;click&#8221; en el botón firmar para tener todos los documentos firmados en pocos segundos.</p>
<p>Puedes descargar una versión de evaluación de 30 días del producto para <strong>Windows</strong> o <strong>Mac</strong> desde <a href="http://www.motordefirma.es/productos/efirmatic-desktop/">aquí</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2010/07/efirmatic-nuevo-producto-air-2-0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Formación Flex en el CEV</title>
		<link>http://www.carlosrovira.com/blog/2010/02/formacion-flex-en-el-cev/</link>
		<comments>http://www.carlosrovira.com/blog/2010/02/formacion-flex-en-el-cev/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 10:32:35 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=714</guid>
		<description><![CDATA[Hace unos días el CEV, Escuela Superior de Comunicación, Imagen y Sonido, ha anunciado su acuerdo con Codeoscopic para la ofrecer formación especializada en Adobe Flex. Os dejo el comunicado oficial.
A su vez es de esperar que Made In Flex y CEV aprovechen los conocimientos del equipo de MIF en estas tecnologías y las estupendas [...]]]></description>
			<content:encoded><![CDATA[<p>Hace unos días el <a href="http://cev.com/">CEV</a>, Escuela Superior de Comunicación, Imagen y Sonido, ha anunciado su acuerdo con <a href="http://www.codeoscopic.com">Codeoscopic</a> para la ofrecer formación especializada en <strong>Adobe Flex</strong>. Os dejo <a href="http://www.cev.com/noticia_detalle.php?sc=3&#038;noticia=190">el comunicado oficial</a>.</p>
<p>A su vez es de esperar que <strong>Made In Flex</strong> y <strong>CEV</strong> aprovechen los conocimientos del equipo de <strong>MIF</strong> en estas tecnologías y las estupendas instalaciones del <strong>CEV</strong> para ofrecer nuevos eventos para beneficio de toda la comunidad.</p>
<p>Os dejo la nota de prensa:</p>
<p><a href="http://www.cev.com/noticia_detalle.php?sc=3&#038;noticia=190">CEV Y CODEOSCOPIC: ACUERDO DE COLABORACIÓN</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2010/02/formacion-flex-en-el-cev/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GeoStratum 2.0</title>
		<link>http://www.carlosrovira.com/blog/2010/01/geostratum-2-0/</link>
		<comments>http://www.carlosrovira.com/blog/2010/01/geostratum-2-0/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 17:10:11 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=695</guid>
		<description><![CDATA[Ya tenemos nueva versión de GeoStratum y nuevo video en la web de Codeoscopic y en YouTube:













GeoStratum es un sistema de información basado en un visor cartográfico sobre el que podemos desarrollar diferentes aplicaciones basadas en visualización georeferenciada.
La usabilidad de una aplicación de estas características alcanza niveles excelentes gracias a la sencillez de navegación, basada [...]]]></description>
			<content:encoded><![CDATA[<p>Ya tenemos nueva versión de <strong>GeoStratum</strong> y nuevo video en la web de <a href="http://www.codeoscopic.com">Codeoscopic</a> y en <a href="http://www.youtube.com">YouTube</a>:</p>
<p>
<object width="500" height="200">
<param name="movie" value="http://www.youtube.com/v/zOwXuNSJm_U&amp;rel=0&amp;showsearch=0&amp;fs=1"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<param name="allowFullScreen" value="true"></param>
<embed type="application/x-shockwave-flash" width="500" height="200" src="http://www.youtube.com/v/zOwXuNSJm_U&amp;rel=0&amp;showsearch=0&amp;fs=1" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" allowFullScreen="true" ></embed>
</object>
</p>
<p>
<span id="more-695"></span><br />
<strong>GeoStratum</strong> es un sistema de información basado en un visor cartográfico sobre el que podemos desarrollar diferentes aplicaciones basadas en visualización georeferenciada.</p>
<p>La <strong>usabilidad</strong> de una aplicación de estas características alcanza niveles excelentes gracias a la sencillez de navegación, basada principalmente en clicks y movimientos del ratón, en contraposición a los típicos formularios de las aplicaciones de gestión tradicionales y la exposición de la información de forma espacial sobre localizaciones geográficas en vez de las tablas de datos normales en estos casos.</p>
<p>Este es sin duda un buen ejemplo de aplicación <strong>RIA</strong>, desarrollada sobre <strong>Flex</strong> y <strong>JEE</strong>, por uno de los equipos de producción de <strong>Codeoscopic</strong>. El concepto principal detrás del producto es el poder extender la base <strong>GIS</strong> para añadir información propia de un negocio concreto. En ese aspecto, <strong>GeoStratrum 2.0</strong> es la herramienta apropiada para gestionar infraestructuras de suministro (agua, electricidad, etc), planes urbanísticos, líneas de transporte (metro, autobus,&#8230;), servicios de logística, polígonos industriales, parques naturales, etc&#8230;</p>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2010/01/geostratum-2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Más novedades en la cabecera</title>
		<link>http://www.carlosrovira.com/blog/2009/12/mas-novedades-en-la-cabecera/</link>
		<comments>http://www.carlosrovira.com/blog/2009/12/mas-novedades-en-la-cabecera/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 21:49:24 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=689</guid>
		<description><![CDATA[Este fin de semana he añadido algunas cosas nuevas a la cabecera de este blog. Ya es posible navegar entre diferentes experimentos gracias a la lista desplegable de la parte inferior.
Esta lista es un experimento con las nuevas capacidades que ofrecen las listas en Flex 4. Ya sabéis que ahora el layout y los Item [...]]]></description>
			<content:encoded><![CDATA[<p>Este fin de semana he añadido algunas cosas nuevas a la cabecera de este blog. Ya es posible navegar entre diferentes experimentos gracias a la lista desplegable de la parte inferior.</p>
<p>Esta lista es un experimento con las nuevas capacidades que ofrecen las listas en Flex 4. Ya sabéis que ahora el <em>layout</em> y los <em>Item Renderers</em> son mucho más versatiles en <em>Spark</em> y podemos mantener el reciclaje de <em>renderers</em> (<em>useVirtualLayout = true</em>) a la vez que hacemos que estos se comporten de forma más expresiva como en este caso. Os recomiendo que juguéis un poco con las nuevas listas de spark <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Por otra parte he añadido dos nuevos experimentos en formato &#8220;modular&#8221;. Uno es un <em>fork</em> del experimento con <em>Picasa</em> y fisicas reales, salvo que en este caso lo que llueven son controles Flex!.</p>
<p>El otro es un experimento-mashup con los servicios de <a href="http://www.youtube.com">YouTube.com</a>. En el uso una lista de reproducción que tengo en mi usuario de YouTube para visualizar algunos videos sobre mis gustos personales a modo de &#8220;televisión a la carta&#8221;. De esta forma puedo ir añadiendo o quitando vídeos a dicha lista desde el interface de youtube para que automáticamente se visualicen en la cabecera de este blog con el formato aplicado.</p>
<p>El único proposito detrás de todo esto es la diversión. Como suelen decir &#8220;code is fun&#8221;! <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2009/12/mas-novedades-en-la-cabecera/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Nuevo añadido a la cabecera usando físicas reales</title>
		<link>http://www.carlosrovira.com/blog/2009/11/nuevo-anadido-a-la-cabecera-usando-fisicas-reales/</link>
		<comments>http://www.carlosrovira.com/blog/2009/11/nuevo-anadido-a-la-cabecera-usando-fisicas-reales/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 20:08:29 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=682</guid>
		<description><![CDATA[He añadido otro entretenimiento a la cabecera de este blog.
En este caso he aplicado físicas reales al visor de fotos de Picasa. El API usada para añadir las físicas reales es Box2D. Podéis arrastar las imagenes y lanzarlas por el escenario  .
También he cambiado la estructura por un cargador de módulos que selecciona uno [...]]]></description>
			<content:encoded><![CDATA[<p>He añadido otro entretenimiento a la cabecera de este blog.</p>
<p>En este caso he aplicado físicas reales al visor de fotos de <strong>Picasa</strong>. El API usada para añadir las físicas reales es <a href="http://box2dflash.sourceforge.net/">Box2D</a>. Podéis arrastar las imagenes y lanzarlas por el escenario <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p>También he cambiado la estructura por un cargador de módulos que selecciona uno de ellos al azar. De momento solo hay dos módulos, pero espero ir introduciendo algunos más con el tiempo. Todo es cuestión de entretenerse, experimentar y disfrutar de las cosas que se pueden hacer con Flash <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p><img src="http://www.carlosrovira.com/blog/wp-content/uploads/2009/11/visorPicasaBox2D.png" alt="visorPicasaBox2D" title="visorPicasaBox2D" width="364" height="286" class="aligncenter size-full wp-image-683" /></p>
<p>Como paso con el anterior experimento, espero destriparlo en próximos posts!</p>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2009/11/nuevo-anadido-a-la-cabecera-usando-fisicas-reales/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visor de Fotos Flex con Picasa (II)</title>
		<link>http://www.carlosrovira.com/blog/2009/10/visor-de-fotos-flex-con-picasa-ii/</link>
		<comments>http://www.carlosrovira.com/blog/2009/10/visor-de-fotos-flex-con-picasa-ii/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 21:09:44 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=651</guid>
		<description><![CDATA[En la anterior entrada resolvimos la todo lo concerniente a la recogida de datos de un álbum alojado en Picasa. En este post veremos una forma de resolver la parte visual del visor de fotos de la cabecera de este blog.


El planteamiento principal a la hora de pensar técnicamente este visor simple de fotos era [...]]]></description>
			<content:encoded><![CDATA[<p>En la anterior entrada resolvimos la todo lo concerniente a la recogida de datos de un álbum alojado en Picasa. En este post veremos una forma de resolver la parte visual del visor de fotos de la cabecera de este blog.</p>
<p><img src="http://www.carlosrovira.com/blog/wp-content/uploads/2009/10/headerphotos.jpg" alt="headerphotos" title="headerphotos" width="400" height="300" class="aligncenter size-full wp-image-663" /></p>
<p><span id="more-651"></span></p>
<p>El planteamiento principal a la hora de pensar técnicamente este visor simple de fotos era como hacerlo de forma que la memoria se mantuviera estable y no tuviéramos problemas si manteníamos la ejecución durante largo tiempo, teniendo en cuenta que estamos todo el rato cargando imágenes que se quedan en el fondo del visor y que van a ir siendo tapadas en parte por las nuevas fotos.</p>
<p>La forma óptima es usar solo dos objetos. Un control <em>Image</em> de Flex que es el que irá cargando cada foto, y un Bitmap que será sobre el que iremos copiando los pixeles de cada imagen una vez terminen el recorrido de su animación (este componente puede ser un <em>UIComponent</em>). Una vez desarrollado este concepto, vemos que el profiler se mantiene constante como era de esperar en cuanto a la memoria consumida.</p>
<p><img src="http://www.carlosrovira.com/blog/wp-content/uploads/2009/10/visorfotos_profiler.png" alt="visorfotos_profiler" title="visorfotos_profiler" width="435" height="182" class="aligncenter size-full wp-image-665" /></p>
<p>En cuanto a la programación llevada a cabo. Los dos objetos que intervienen son el control Imagen y un UIComponent que servirá de &#8220;lienzo&#8221; para ir copiando las fotos e ir manteniendo el uso de memoria:</p>
<pre class="brush: xml">
&lt;mx :UIComponent id=&quot;canvas&quot;/&gt;
&lt;mx :Image id=&quot;img&quot; smoothBitmapContent=&quot;true&quot; complete=&quot;photoEffect.play();&quot;/&gt;
</pre>
<p>A continuación un poco de código de inicialización para entender que variables hay implicadas:</p>
<pre class="brush: javascript">// --- Definición de variables y código de inicialización
// --- Bitmap sobre el que copiaremos las imagenes
private var collage:Bitmap;
// --- Array de datos descargado de PIcasa (ver post anterior)
private var fotos_arr:Array;

// --- Inicialización del canvas (UIComponent) sobre el que pintaremos las imagenes
canvas.width = width;
canvas.height = height;
collage = new Bitmap(new BitmapData(width, height, true, 0x000000));
canvas.addChild(collage);
</pre>
<p>Luego tenemos un método que se encarga de &#8220;lanzar una foto&#8221; como podemos ver a continuación:</p>
<pre class="brush: javascript">
public function throwOnePhoto():void {
        //-- Sacamos la imagen que lanzaremos del array de fotos de picasa al azar
	var tmp:Object = fotos_arr.splice(Math.random()*fotos_arr.length,1).pop();

	// --- hacemos los calculos iniciales (rotacion,escala,...) para dicha imagen
	angle = range*Math.random()-range/2;
	finalAngle = -angle+Math.random()*20;
	rot.angleTo = finalAngle;
	img.scaleX = img.scaleY = 2;
	img.alpha = 0;
        // --- sacamos la url de los datos de picasa y añadimos el parametro imgmax. Esto último es *crucial* para evitar errores de carga en algunos navegadores (como siempre IE da sus problemillas). Otro pequeño truco indispensable para que funcione este servicio de Picasa correctamente.
	img.source = tmp.media.content.url + &quot;?imgmax=800&quot;;
	img.width = tmp.media.content.width;
	img.height = tmp.media.content.height;
	img.x = Math.random()*(width - img.width);
	img.y = Math.random()*(height - img.height);
	img.rotation = angle;

        // --- dibujamos en la imagen un fondo blanco y proyectamos una sombra para darle aspecto de foto a la imagen
	img.graphics.clear();
	img.graphics.beginFill(0xffffff);
	img.graphics.drawRect(-5, -5, img.width+10, img.height+10);
	img.graphics.endFill();
	img.filters = [new DropShadowFilter(1, 90, 0, .75, blur, blur, 2, 2)];
}
</pre>
<p>Cada vez que queramos lanzar una foto, llamaremos al método anterior.</p>
<p>En cuanto al efecto utilizado cuando &#8220;lanzamos la foto&#8221;, se trata de una combinación de efectos ejecutados en paralelo:</p>
<pre class="brush: xml">&lt;fx : Declarations&gt;
	&lt;s : Parallel id=&quot;photoEffect&quot; duration=&quot;4000&quot; effectEnd=&quot;copyImage(event)&quot; &gt;
		&lt;s : Fade alphaTo=&quot;1&quot; duration=&quot;3000&quot;/&gt;
		&lt;s : Rotate id=&quot;rot&quot; startDelay=&quot;500&quot; duration=&quot;3500&quot; autoCenterTransform=&quot;true&quot;/&gt;
		&lt;s : Scale scaleXFrom=&quot;2&quot; scaleYFrom=&quot;2&quot; duration=&quot;3000&quot; scaleXTo=&quot;1&quot; scaleYTo=&quot;1&quot; startDelay=&quot;1000&quot; autoCenterTransform=&quot;true&quot;/&gt;
	&lt;/s&gt;
&lt;/fx&gt;
</pre>
<p>En este caso, el truco está en el uso de los parámetros <em>startDelay</em> y <em>duration</em> para hacer la combinación de <em>timelines</em> que buscamos. Otro parámetro clave en la nueva arquitectura de efectos de <strong>Flex 4</strong> es <em>autoCenterTransform</em>, cuyo cometido es hacer que los efectos <em>Move</em>, <em>Scale</em> y <em>Rotate</em> actúen al unisono mediante un <em>proxy</em> que hace que el valor solo cambie una vez como resultado de todos los cambios de efectos sobre el objeto (de esta forma se evitan los parpadeos o &#8220;brincos&#8221; inesperados de los objetos animados.</p>
<p>Finalmente y una vez que el efecto a terminado, tenemos que ejecutar la parte más delicada del proceso. La copia del estado visual de la imagen en nuestro lienzo para poder reutilizar el componente <em>Image</em> nuevamente y evitar el uso innecesario de memoria, como comentamos anteriormente. Para ello llamamos al método <em>copyImage</em> cuando el efecto a terminado su ejecución:</p>
<pre class="brush: javascript">
//cuando termina el effecto
private function copyImage(event:EffectEvent):void {
	drawOntoBitmapData(img,collage.bitmapData);

	if(fotos_arr.length &gt; 0)
		throwOnePhoto();
}
</pre>
<p>El método <em>drawOntoBitmapData</em> se encarga de dibujar el objeto <em>Image</em> sobre el <em>Bitmap</em>. En el conseguimos los limites de la imagen mediante <em>getBounds</em> (teniendo en cuenta que hemos aplicado un filtro de sombra). Y tenemos que tener igualmente en cuenta la rotación y la traslación aplicada para hacer la copia final en nuestro lienzo. Aquí se trata de darle un poco de uso a nuestros conocimientos matemáticos <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<pre class="brush: javascript">
private function drawOntoBitmapData(source : IBitmapDrawable, target : BitmapData) : void {
	var bounds : Rectangle = DisplayObject(source).getBounds(DisplayObject(source));
	var bitmapData : BitmapData = new BitmapData(bounds.width+blur*2, bounds.height+blur*2, true, 0x00000000);
	var mangle:Number = finalAngle*Math.PI/180;
	var sinVal:Number = Math.sin(mangle);
	var cosVal:Number = Math.cos(mangle);

	var m1:Matrix= new Matrix(1, 0, 0, 1, -bounds.x+blur, -bounds.y+blur);
	bitmapData.draw(source, m1, null, null, null, true);

	var m2:Matrix= new Matrix(1, 0, 0, 1, bounds.x - blur, bounds.y - blur);
	m2.translate(img.x*cosVal+img.y*sinVal, img.y*cosVal-img.x*sinVal);
	m2.rotate(mangle);
	target.draw(bitmapData, m2, null, null, null, true);
}
</pre>
<p>Y ya está. El efecto visual está terminado y listo para usar en nuestro blog <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Espero que os haya parecido interesante. El siguiente paso es empezar a jugar con lo conseguido y experimentar con las nuevas cosas que ofrece Flex 4&#8230;¿qué tal si aplicamos ahora un efecto Rotate3D?</p>
<p> <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2009/10/visor-de-fotos-flex-con-picasa-ii/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Visor de Fotos Flex con Picasa (I)</title>
		<link>http://www.carlosrovira.com/blog/2009/10/visor-de-fotos-flex-con-picasa-i/</link>
		<comments>http://www.carlosrovira.com/blog/2009/10/visor-de-fotos-flex-con-picasa-i/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 22:54:17 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=628</guid>
		<description><![CDATA[Como comentaba en mi último post quería compartir con vosotros unas pocas lineas acerca del proceso de creación del visor de fotos para la cabecera de este blog.
El concepto inicial era crear una cabecera sencilla con Flex 4, donde fuesen apareciendo fotos al azar como si fuesen &#8220;lanzadas&#8221; a un escritorio. La idea no es [...]]]></description>
			<content:encoded><![CDATA[<p>Como comentaba en mi último post quería compartir con vosotros unas pocas lineas acerca del proceso de creación del visor de fotos para la cabecera de este blog.</p>
<p>El concepto inicial era crear una cabecera sencilla con <strong>Flex 4</strong>, donde fuesen apareciendo fotos al azar como si fuesen &#8220;lanzadas&#8221; a un escritorio. La idea no es nueva, ya que se puede ver en alguno de los salvapantallas de los Mac. El motivo de elegir Flex 4 era simplemente por posibilidades de experimentación en el futuro con el nuevo framework.</p>
<p><img src="http://www.carlosrovira.com/blog/wp-content/uploads/2009/10/mac_screensaver.png" alt="Leopard Photo Screen Saver" title="Leopard Photo Screen Saver" width="343" height="242" class="aligncenter size-full wp-image-653" /></p>
<p><span id="more-628"></span></p>
<p>En el proceso de pensar dicha cabecera me planteé donde estarían alojadas las fotos a mostrar. Podría tener, como en mi antiguo visor de fotos, un álbum en mi propio servidor y acceder vía <strong>AMF</strong> a la estructura de directorios y fotos, de forma que simplemente subiendo una nueva foto por <strong>FTP</strong>, el servicio <strong>AMF</strong> ya supiese de su existencia y la devolviese al visor para ser visualizada. No obstante y teniendo en cuenta que hoy en día tenemos servicios de alojamiento de imágenes gratuitos como <strong>Flickr</strong>, <strong>Picasa</strong> o <strong>Facebook</strong>, me decidí por estos últimos ya que además tienen interfaces web y se hacen sencillos de gestionar. Otras ventajas de esta elección es que podemos subir las imágenes desde un browser vía http y eliminamos ancho de banda del servidor dado que las imágenes están en las máquinas de Google.</p>
<p>Inicialmente hice un poco de investigación entre los distintos servicios y sus APIs para Flex y finalmente me quedé con <strong>Picasa</strong>. Quizá simplemente por la sencillez que siempre imprime Google en todo lo que hace y sobre todo por el <a href="http://code.google.com/p/picasa-flex-api/">API Flex de acceso</a> tan sencilla que encontré.</p>
<p>Si tenéis un álbum creado en Picasa es muy sencillo recoger la información de su contenido. Para que veáis la facilidad de uso del API de Flex podemos hacer lo siguiente:</p>
<pre class="brush: javascript">private var gService:GDataService = new GDataService();
private var username:String = &quot;usuario&quot;;
private var albumName:String = &quot;album&quot;;	

gService.userName = username;
gService.proxied = false;
gService.projection = GDataService.GDATA_PROJECTION_API;

gService.addEventListener( GDataEvent.GET_PHOTOS_BY_ALBUM, handlePhotoOk );
gService.addEventListener( GDataEvent. GET_PHOTOS_BY_ALBUM_FAILED, handlePhotoFail );

gService.getPhotosByAlbum( albumName );
</pre>
<p>Como es habitual tenemos que definir un servicio con nuestro usuario y álbum a mostrar y los <em>listeners</em> para el manejo del resultado o del error. En mi caso opté por usar el método <em>getPhotosByAlbum</em> que me devuelve todas las fotos del álbum en cuestión. Luego en el método <em>handlePhotoOk</em> podemos recoger el <em>array</em> de fotos depositado en <em>event.result.source</em> y comenzar a usarlo en nuestro visor para mostrar las imágenes que necesitemos.</p>
<p>Eso sí, os dejo unas lineas de código fundamentales para que todo funcione correctamente:</p>
<pre class="brush: javascript">Security.loadPolicyFile( &quot;http://photos.googleapis.com/data/crossdomain.xml&quot; );

Security.loadPolicyFile( &quot;http://lh3.ggpht.com/crossdomain.xml&quot; );
Security.loadPolicyFile( &quot;http://lh4.ggpht.com/crossdomain.xml&quot; );
Security.loadPolicyFile( &quot;http://lh5.ggpht.com/crossdomain.xml&quot; );
Security.loadPolicyFile( &quot;http://lh6.ggpht.com/crossdomain.xml&quot; );
</pre>
<p>Esto último lo descubrí a base de prueba y error ya que la seguridad del <strong>Flash Player</strong>, una vez más, tiende a complicarnos un poco la vida y sin estas lineas las imágenes no descargaran o algunos browsers simplemente no mostraran ninguna imagen haciendo que nuestro visor falle silenciosamente (o mal funcione en el mejor de los casos).</p>
<p>En el siguiente post veremos como mostrar las imágenes con el efecto deseado ahora que tenemos la fuente de datos a punto. Espero que os resulte interesante <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2009/10/visor-de-fotos-flex-con-picasa-i/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Migración y lavado de cara</title>
		<link>http://www.carlosrovira.com/blog/2009/09/migracion-y-lavado-de-cara/</link>
		<comments>http://www.carlosrovira.com/blog/2009/09/migracion-y-lavado-de-cara/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 21:06:59 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Otros]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=623</guid>
		<description><![CDATA[Como parte de mi plan de volver a darle un poco de vida a este blog, he comenzado por migrarlo a un nuevo servidor, pasarlo a la última versión de WordPress y hacer algunos cambios iniciales en la presentación gráfica. Ahora que este dominio delega totalmente la característica de empresa que había adquirido a Codeoscopic, [...]]]></description>
			<content:encoded><![CDATA[<p>Como parte de mi plan de volver a darle un poco de vida a este blog, he comenzado por migrarlo a un nuevo servidor, pasarlo a la última versión de WordPress y hacer algunos cambios iniciales en la presentación gráfica. Ahora que este dominio delega totalmente la característica de empresa que había adquirido a <a href="http://www.codeoscopic.com">Codeoscopic</a>, me gustaría volver a imprimirle un carácter más personal con mis propios temas, ya sean experimentos de programación, gustos personales o los eventos de mi vida que me gusta dejar aquí anotados para futuras referencias. Quiero agradecer antes de continuar el alojamiento de <a href="http://www.u-company.com/">U-Company</a> durante todos estos años. ¡Gracias chicos! <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Con respecto al lavado de cara realizado, el tema de wordpress elegido es <a href="http://carringtontheme.com/">Carrington</a>, con algunas modificaciones. También le he añadido en el header un pequeño visor de fotos de un álbum que he colgado en <a href="http://picasaweb.google.com">Picasa</a>. De esta forma conforme vaya añadiendo nuevas imágenes, el visor mostrará dichos cambios sin tener que tocar nada. Este pequeño experimento lo he desarrollado con las últimas betas de <a href="http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4">Flex 4</a> (que requiere Flash Player 10). Realmente no es necesario, pero ¡que demonios!, de eso se trata ¿no?. De colgar las cosas experimentales que en otros lugares como la web de Codeoscopic no podría poner <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . De hecho mi plan es ir evolucionando este visor con algunas cosillas que nos ofrece el nuevo player conforme tenga tiempo para ir jugando.</p>
<p>En próximos post analizaremos este visor de <a href="http://picasaweb.google.com">Picasa</a>. Espero que lo encontréis interesante <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2009/09/migracion-y-lavado-de-cara/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Made In Flex: Adobe Tour 2009 en Barcelona el 5 de Junio!</title>
		<link>http://www.carlosrovira.com/blog/2009/05/made-in-flex-adobe-tour-2009-en-barcelona-el-5-de-junio/</link>
		<comments>http://www.carlosrovira.com/blog/2009/05/made-in-flex-adobe-tour-2009-en-barcelona-el-5-de-junio/#comments</comments>
		<pubDate>Thu, 21 May 2009 15:00:09 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=501</guid>
		<description><![CDATA[Estamos en plena preparación del material que se presentará en el Adobe Tour 2009 organizado por Adobe y Made In Flex.
Este nuevo evento tiene un montón de charlas muy interesantes donde podremos conocer todo lo nuevo que está preparando Adobe:
Flash Builder 4 (el nuevo Flex Builder), Gumbo (Flex 4), Spark (el nuevo juego de componentes [...]]]></description>
			<content:encoded><![CDATA[<p>Estamos en plena preparación del material que se presentará en el <a href="http://www.madeinflex.com/2009/05/19/fx4fc-2009-global-aug-tour-update/">Adobe Tour 2009</a> organizado por <strong>Adobe</strong> y <strong>Made In Flex</strong>.</p>
<p>Este nuevo evento tiene un montón de charlas muy interesantes donde podremos conocer todo lo nuevo que está preparando <strong>Adobe</strong>:</p>
<p><strong>Flash Builder 4 (el nuevo Flex Builder), Gumbo (Flex 4), Spark (el nuevo juego de componentes de Flex4), Flex Unit 4, Flash Catalyst.</strong></p>
<p>También tendremos otros temas que son igualmente muy interesantes: <strong>Flex + SEO o como hacer webs Flex Indexables</strong> y por otra parte, una comparación de frameworks : <strong>Cairngorm, Swiz, PureMVC y Mate</strong>.</p>
<p>Todo esto amenizado por el buen rollo y ganas de compartir que siempre tenemos en los eventos que organizamos en <strong>Made In Flex</strong>.</p>
<p>Sin desperdicio ¿no?. Podéis leer más <a href="http://www.madeinflex.com/2009/05/19/fx4fc-2009-global-aug-tour-update/">aquí­</a>. Si queréis asistir no olvidéis registraros <a href="http://groups.adobe.com/posts/ac0532e067">aquí­</a> !</p>
<p>Nos vemos el <strong>5 de Junio en Barcelona</strong>!</p>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2009/05/made-in-flex-adobe-tour-2009-en-barcelona-el-5-de-junio/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Adobe y el cuidado del detalle</title>
		<link>http://www.carlosrovira.com/blog/2008/11/adobe-y-el-cuidado-del-detalle/</link>
		<comments>http://www.carlosrovira.com/blog/2008/11/adobe-y-el-cuidado-del-detalle/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 16:09:55 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=491</guid>
		<description><![CDATA[Es remarcable el mimo y el cuidado extremo del que hace gala Adobe en todo lo que hace. Para muestra un botón.
Hace unos pocos dí­as recibí­ un paquete con una camiseta. La camiseta es un detalle a todos aquellos que estamos poniendo nuestro granito de arena ayudando en la mejora de Flex en todo el [...]]]></description>
			<content:encoded><![CDATA[<p>Es remarcable el mimo y el cuidado extremo del que hace gala <a href="http://www.adobe.com">Adobe</a> en todo lo que hace. Para muestra un botón.</p>
<p>Hace unos pocos dí­as recibí­ un paquete con una camiseta. La camiseta es un detalle a todos aquellos que estamos poniendo nuestro granito de arena ayudando en la mejora de Flex en todo el mundo. Como se puede ver en las fotos, los chicos de <strong>Adobe</strong> se han molestado en personlizar el <strong>Fx</strong> del logo de Flex con los nombres de todos los implicados. Con detalles como este (y otros muchos) no es de extrañar que Adobe goze de tan buena prensa en el mundo. Gracias Adobe!</p>
<div align="center"><img alt="Making Flex Better 1" src="http://www.carlosrovira.com/blog/wp-content/uploads/2008/11/flex_tshirt_1.jpg" /></div>
<div align="center">
<img alt="Making Flex Better 2" src="http://www.carlosrovira.com/blog/wp-content/uploads/2008/11/flex_tshirt_2.jpg" /></div>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2008/11/adobe-y-el-cuidado-del-detalle/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
