﻿<?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>CRaZy TeaM &#187; Flex</title>
	<atom:link href="http://www.crazyteam.es/tag/flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.crazyteam.es</link>
	<description>Artículos sobre noticias de informática, programación y juegos en red</description>
	<lastBuildDate>Mon, 08 Mar 2010 20:21:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Mis primeros pasos en Flex y Action Script 3</title>
		<link>http://www.crazyteam.es/flash/mis-primeros-pasos-en-flex-y-action-script-3/</link>
		<comments>http://www.crazyteam.es/flash/mis-primeros-pasos-en-flex-y-action-script-3/#comments</comments>
		<pubDate>Tue, 19 May 2009 00:04:17 +0000</pubDate>
		<dc:creator>Ignacio Sánchez</dc:creator>
				<category><![CDATA[Action Script 3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[MXML]]></category>
		<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://www.crazyteam.es/?p=403</guid>
		<description><![CDATA[Hoy mismo he empezado un curso de Flex y Action Script 3 en CREA Formación. Lo primero es darle las gracias a mis compañeros de Indra que han hecho posible que vaya a este curso, y no es ninguna coña. Lo voy a aprovechar todo lo que pueda y más.
Yo vengo con conocimiento 0 en [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy mismo he empezado un curso de Flex y Action Script 3 en CREA Formación. Lo primero es <strong>darle las gracias a mis compañeros de Indra</strong> que han hecho posible que vaya a este curso, y no es ninguna coña. Lo voy a aprovechar todo lo que pueda y más.</p>
<p>Yo vengo con conocimiento 0 en MXML y AS3, los dos lenguajes principales.</p>
<p>Flex divide el contenido que va a mostrar (paneles, imágenes, campos de texto, botones, &#8230;)  del que hace dinámica la aplicación (eventos, acciones, cambios de comportamiento, &#8230;). Para el primero utiliza, según la estructura de XML, el lenguaje <a href="http://es.wikipedia.org/wiki/MXML">MXML</a>; muy parecido a <a href="http://es.wikipedia.org/wiki/XAML">XAML</a>, el símil de Silverlight. Para el comportamiento dinámico utiliza <a href="http://es.wikipedia.org/wiki/ActionScript">Action Script</a>, una forma de escribir scripts algo peculiar.</p>
<p>El primer día, como es lógico, para los que empezamos nos enseñan un poquillo cómo va el lenguaje, los clásicos &#8220;Hello World&#8221;, alerts, etc etc. Como ejercicio de final de día hemos hecho algo parecido a esto: <a href="http://flex.crazyteam.es/test1/">mi primer programa en flex</a>. El código fuente está en el <a href="http://crazyteam.googlecode.com/svn/trunk/Source">repositorio SVN de CRaZyTeaM</a>, en el <a href="http://crazyteam.googlecode.com/svn/trunk/Source/Flex/CursoFlex/Ejemplo1/">Ejemplo 1</a>.</p>
<p>Para ello he escrito un código muy muy simple de MXML, que me recuerda mucho a el XAML de Silverlight:</p>
<div class="codesnip-container" >
<div class="xml codesnip" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;?xml</span> <span class="re0">version</span>=<span class="st0">&quot;1.0&quot;</span> <span class="re0">encoding</span>=<span class="st0">&quot;utf-8&quot;</span><span class="re2">?&gt;</span></span><br />
<span class="sc3"><span class="re1">&lt;mx:Application</span> <span class="re0">xmlns:mx</span>=<span class="st0">&quot;http://www.adobe.com/2006/mxml&quot;</span> <span class="re0">layout</span>=<span class="st0">&quot;absolute&quot;</span> <span class="re0">creationComplete</span>=<span class="st0">&quot;iniciar()&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;mx:Script</span> <span class="re0">source</span>=<span class="st0">&quot;colores.as&quot;</span><span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;mx:Panel</span> <span class="re0">x</span>=<span class="st0">&quot;69&quot;</span> <span class="re0">y</span>=<span class="st0">&quot;49&quot;</span> <span class="re0">width</span>=<span class="st0">&quot;550&quot;</span> <span class="re0">height</span>=<span class="st0">&quot;352&quot;</span> <span class="re0">layout</span>=<span class="st0">&quot;absolute&quot;</span> <span class="re0">id</span>=<span class="st0">&quot;panel1&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;mx:Button</span> <span class="re0">x</span>=<span class="st0">&quot;171.5&quot;</span> <span class="re0">y</span>=<span class="st0">&quot;49&quot;</span> <span class="re0">id</span>=<span class="st0">&quot;btnVerde&quot;</span> <span class="re0">label</span>=<span class="st0">&quot;Verde&quot;</span> <span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;mx:Button</span> <span class="re0">x</span>=<span class="st0">&quot;239.5&quot;</span> <span class="re0">y</span>=<span class="st0">&quot;49&quot;</span> <span class="re0">id</span>=<span class="st0">&quot;btnRojo&quot;</span> <span class="re0">label</span>=<span class="st0">&quot;Rojo&quot;</span><span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;mx:Button</span> <span class="re0">x</span>=<span class="st0">&quot;299.5&quot;</span> <span class="re0">y</span>=<span class="st0">&quot;49&quot;</span> <span class="re0">id</span>=<span class="st0">&quot;btnAzul&quot;</span> <span class="re0">label</span>=<span class="st0">&quot;Azul&quot;</span><span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;mx:TextArea</span> <span class="re0">x</span>=<span class="st0">&quot;171.5&quot;</span> <span class="re0">y</span>=<span class="st0">&quot;98&quot;</span> <span class="re0">width</span>=<span class="st0">&quot;179&quot;</span> <span class="re0">height</span>=<span class="st0">&quot;97&quot;</span> <span class="re0">text</span>=<span class="st0">&quot;Cambia de color&quot;</span> <span class="re0">id</span>=<span class="st0">&quot;capaColor&quot;</span><span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/mx:Panel<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span class="sc3"><span class="re1">&lt;/mx:Application<span class="re2">&gt;</span></span></span></div>
</div>
<p>Y su correspondiente fichero de scripts:</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">private</span> <span class="kw2">function</span> iniciar<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span><span class="br0">&#123;</span><br />
btnVerde.<span class="me1">addEventListener</span><span class="br0">&#40;</span><br />
MouseEvent.<span class="me1">CLICK</span><span class="sy0">,</span><br />
<span class="kw2">function</span><span class="br0">&#40;</span>e <span class="sy0">:</span> MouseEvent<span class="br0">&#41;</span> <span class="sy0">:</span> <span class="kw1">void</span><span class="br0">&#123;</span><br />
cambiaColor<span class="br0">&#40;</span>e<span class="sy0">,</span> <span class="st0">&quot;green&quot;</span><span class="br0">&#41;</span><br />
<span class="br0">&#125;</span><span class="sy0">,</span><br />
<span class="kw2">false</span> <span class="sy0">,</span> 0 <span class="sy0">,</span> <span class="kw2">false</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
btnRojo.<span class="me1">addEventListener</span><span class="br0">&#40;</span><br />
MouseEvent.<span class="me1">CLICK</span><span class="sy0">,</span><br />
<span class="kw2">function</span><span class="br0">&#40;</span>e <span class="sy0">:</span> MouseEvent<span class="br0">&#41;</span> <span class="sy0">:</span> <span class="kw1">void</span><span class="br0">&#123;</span><br />
cambiaColor<span class="br0">&#40;</span>e<span class="sy0">,</span> <span class="st0">&quot;red&quot;</span><span class="br0">&#41;</span><br />
<span class="br0">&#125;</span><span class="sy0">,</span><br />
<span class="kw2">false</span> <span class="sy0">,</span> 0 <span class="sy0">,</span> <span class="kw2">false</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
btnAzul.<span class="me1">addEventListener</span><span class="br0">&#40;</span><br />
MouseEvent.<span class="me1">CLICK</span><span class="sy0">,</span><br />
<span class="kw2">function</span><span class="br0">&#40;</span>e <span class="sy0">:</span> MouseEvent<span class="br0">&#41;</span> <span class="sy0">:</span> <span class="kw1">void</span><span class="br0">&#123;</span><br />
cambiaColor<span class="br0">&#40;</span>e<span class="sy0">,</span> <span class="st0">&quot;blue&quot;</span><span class="br0">&#41;</span><br />
<span class="br0">&#125;</span><span class="sy0">,</span><br />
<span class="kw2">false</span> <span class="sy0">,</span> 0 <span class="sy0">,</span> <span class="kw2">false</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">private</span> <span class="kw2">function</span> cambiaColor<span class="br0">&#40;</span>e <span class="sy0">:</span> MouseEvent<span class="sy0">,</span> c<span class="sy0">:</span>String<span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span><span class="br0">&#123;</span><br />
capaColor.<span class="me1">setStyle</span><span class="br0">&#40;</span><span class="st0">&quot;backgroundColor&quot;</span><span class="sy0">,</span>c<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>De entre este poquillo de código, lo que más aprendimos es al ejecutar cosas al inicio del programa, con el &#8220;creationComplete&#8221; en el mx:Application y al tratamiento de eventos.</p>
<p>Uno de losproblemas que me encontré es que realmente los addEventListener nos los han enseñado sin poder pasar parámetros a cambiaColor de la forma:</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;">btnRojo.<span class="me1">addEventListener</span><span class="br0">&#40;</span>MouseEvent.<span class="me1">CLICK</span><span class="sy0">,</span>cambiaColor<span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>Y la verdad es que no me parece nada útil. Mucho código para tan poca cosa, aunque tendrá alguna razón.</p>
<p>Respecto al código HTML que genera el propio Flex Builder y el SDK del Flex pues&#8230; sin comentarios&#8230;</p>
<p>Por el resto, una visión de los lenguajes que no había visto, pero bastante parecida a C# y que me gusta bastante.</p>
<p>¡Gracias chicos por darme este curso!</p>
<h3  class="related_post_title">No hay artículos relacionados. Echa un ojo a estos:</h3><ul class="related_post"><li><a href="http://www.crazyteam.es/java/look-and-feel-en-aplicaciones-java/" title="Look And Feel en aplicaciones Java">Look And Feel en aplicaciones Java</a></li><li><a href="http://www.crazyteam.es/java/el-rendimiento-de-java-es-mejor-en-linux/" title="El rendimiento de Java es mejor en Linux">El rendimiento de Java es mejor en Linux</a></li><li><a href="http://www.crazyteam.es/servidor/como-gestionar-el-cacheo-de-un-servidor-web/" title="Cómo gestionar el cacheo de un servidor web">Cómo gestionar el cacheo de un servidor web</a></li><li><a href="http://www.crazyteam.es/wow/addons-utiles-para-wow/" title="Addons útiles para WoW">Addons útiles para WoW</a></li><li><a href="http://www.crazyteam.es/java/ordenar-hashtable/" title="Ordenar Hashtable en Java">Ordenar Hashtable en Java</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.crazyteam.es/flash/mis-primeros-pasos-en-flex-y-action-script-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
