<?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>MadeInFlex</title>
	<atom:link href="http://www.madeinflex.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.madeinflex.com</link>
	<description>Creando Soluciones RIA...</description>
	<lastBuildDate>Mon, 08 Feb 2010 12:29:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Formación Flex en el CEV</title>
		<link>http://www.madeinflex.com/2010/02/08/formacion-flex-en-el-cev/</link>
		<comments>http://www.madeinflex.com/2010/02/08/formacion-flex-en-el-cev/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 12:29:11 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Noticias]]></category>

		<guid isPermaLink="false">http://www.madeinflex.com/?p=1201</guid>
		<description><![CDATA[<!-- matched  --><!-- final 0 -->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[<!-- matched  --><!-- final 0 --><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.madeinflex.com/2010/02/08/formacion-flex-en-el-cev/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>#flex101 SWF más ligeros, bin-release</title>
		<link>http://www.madeinflex.com/2010/02/05/flex101-swf-mas-ligeros-bin-release/</link>
		<comments>http://www.madeinflex.com/2010/02/05/flex101-swf-mas-ligeros-bin-release/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 08:05:11 +0000</pubDate>
		<dc:creator>Edgar Parada</dc:creator>
				<category><![CDATA[Flex Builder]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.madeinflex.com/?p=1190</guid>
		<description><![CDATA[<!-- matched  --><!-- final 0 -->Con este post comenzamos una serie de recomendaciones, tips y tutoriales enfocados a cubrir aquellos temas básicos de la tecnología Flex que esperamos sean de utilidad para los entusiastas de la plataforma.
Uno de los primeros tips que es importante conocer cuando hacemos aplicaciones con Flex utilizando Flex/Flash Builder es el manejo de los archivos de [...]]]></description>
			<content:encoded><![CDATA[<!-- matched  --><!-- final 0 --><p>Con este post comenzamos una serie de recomendaciones, tips y tutoriales enfocados a cubrir aquellos <strong>temas básicos de la tecnología Flex</strong> que esperamos sean de utilidad para los entusiastas de la plataforma.</p>
<p>Uno de los primeros tips que es importante conocer cuando hacemos aplicaciones con <strong>Flex</strong> utilizando <strong>Flex/Flash Builder</strong> es el manejo de los archivos de salida. De forma automática cuando generamos un proyecto nuevo con la herramienta se crean varias carpetas: <em>bin-debug, html-template, src y libs.</em><br />
<span id="more-1190"></span></p>
<p><img src="http://www.madeinflex.com/wp-content/uploads/2010/02/imagen_1.jpg" alt="Proyecto Flex" title="Proyecto Flex" width="252" height="147" class="aligncenter size-full wp-image-1191" /></p>
<p>Es común encontrar por la red aplicaciones <strong>Flex</strong> de desarrolladores que al compilar sus proyectos por <em>descuido o desconocimiento</em> suben las aplicaciones <strong>SWF</strong> generadas en la carpeta bin-debug, esta versión contiene información adicional que es utilizada cuando utilizamos el comando <em>debug</em> de la herramienta.</p>
<p>La forma correcta de subir nuestras aplicaciones al servidor sería aprovechando las versiones generadas a partir del comando “<strong>Export Release Build</strong>”, ya que al no incluir esa información adicional su peso es considerablemente menor que la versión de depuración.</p>
<p><img src="http://www.madeinflex.com/wp-content/uploads/2010/02/imagen_2.jpg" alt="Export Release Build" title="Export Release Build" width="341" height="234" class="aligncenter size-full wp-image-1192" /></p>
<p>Tomemos como ejemplo una aplicación sencilla que contiene 3 componentes: <em>Button, TextInput y DataGrid</em>. Al compilar estar aplicación el <strong>SWF</strong> generado en la carpeta bin-debug tiene un peso de <strong>449 kb</strong>.</p>
<p><img src="http://www.madeinflex.com/wp-content/uploads/2010/02/imagen_3.jpg" alt="Debug Version" title="Debug Version" width="354" height="130" class="aligncenter size-full wp-image-1193" /></p>
<p>Ahora ejecutemos el comando <em>Project > Export Release Build</em>, el tamaño de la aplicación generada es de tan solo <strong>276 kb</strong>, siendo el ancho de banda uno de los recursos más preciados en las aplicaciones de Internet es importante tener cuidado con estos pequeños detalles.</p>
<p><img src="http://www.madeinflex.com/wp-content/uploads/2010/02/imagen_4.jpg" alt="Debug Version" title="Debug Version" width="351" height="126" class="aligncenter size-full wp-image-1194" /></p>
<p>Hace tiempo en algún taller de Flex recuerdo que utilicé el hashtag <strong>#flex101</strong> para hablar de los fundamentos de la tecnología, por lo que los invito a compartir sus mejores tips en Twitter a la cuenta de <a href="http://twitter.com/madeinflex">@madeinflex</a> no duden que en una entrada posterior merecerá que hagamos una compilación de los mejores.</p>]]></content:encoded>
			<wfw:commentRss>http://www.madeinflex.com/2010/02/05/flex101-swf-mas-ligeros-bin-release/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Adobe AIR 2 beta 2</title>
		<link>http://www.madeinflex.com/2010/02/02/adobe-air-beta-2/</link>
		<comments>http://www.madeinflex.com/2010/02/02/adobe-air-beta-2/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 17:59:45 +0000</pubDate>
		<dc:creator>Edgar Parada</dc:creator>
				<category><![CDATA[AIR (Apollo)]]></category>
		<category><![CDATA[Noticias]]></category>

		<guid isPermaLink="false">http://www.madeinflex.com/?p=1183</guid>
		<description><![CDATA[<!-- matched  --><!-- final 0 -->El día de hoy se anunció en Adobe Labs, AIR 2 beta 2. Es importante darle un vistazo puesto que las aplicaciones compiladas con beta 1 ya no podrán ejecutarse con el runtime de AIR 2 beta 2, así mismo hay algunas características importantes en esta versión entre las que destacan&#8230;


Interacción Mejorada con la Impresora: [...]]]></description>
			<content:encoded><![CDATA[<!-- matched  --><!-- final 0 --><p>El día de hoy se anunció en Adobe Labs, <a href="http://labs.adobe.com/technologies/air2/">AIR 2 beta 2</a>. Es importante darle un vistazo puesto que las aplicaciones compiladas con beta 1 ya no podrán ejecutarse con el runtime de AIR 2 beta 2, así mismo hay algunas características importantes en esta versión entre las que destacan&#8230;<br />
<span id="more-1183"></span></p>
<ul>
<li><strong>Interacción Mejorada con la Impresora:</strong> Nuevo soporte de impresión que permite un control más fino sobre la manera en que el contenido se imprime desde una aplicación AIR, incluyendo la <em>elección de impresora, tamaño del papel y número de copias. </em><br />
Una nueva API que permite recuperar información adicional de la impresión, como el área a imprimir, los colores y status de actividad. También es posible mandar a imprimir sin mostrar el diálogo de imprimir.</li>
<li><strong>Soporte para comunicación de sockets TLS/SSL:</strong> Ahora es posible conectarse a un servidor que requiere comunicaciones por socket tipo <em>TLSv1</em> o <em>SSLv3</em>.</li>
<li><strong>API IME y Mejoras en la Entrada de Texto:</strong> Interesantes mejoras para soportar la entrada de texto con software IME mediante un API diseñada para utilizar el Flash Text Engine.</li>
</ul>
<p>También hay algunas <a href="http://labs.adobe.com/technologies/air2/samples/">aplicaciones de ejemplo</a> que podemos ir descargando para revisar a detalle estas características.</p>]]></content:encoded>
			<wfw:commentRss>http://www.madeinflex.com/2010/02/02/adobe-air-beta-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Object Pool and Caching</title>
		<link>http://www.madeinflex.com/2010/02/01/object-pool-and-caching/</link>
		<comments>http://www.madeinflex.com/2010/02/01/object-pool-and-caching/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 13:25:52 +0000</pubDate>
		<dc:creator>Sergi Dote Teixidor</dc:creator>
				<category><![CDATA[Artículos]]></category>

		<guid isPermaLink="false">http://www.madeinflex.com/?p=1086</guid>
		<description><![CDATA[<!-- matched  --><!-- final 0 -->Seguramente alguna vez hemos oído o leído sobre los conceptos de &#8220;pool de objetos&#8221; o &#8220;cache de objetos&#8221;. En este artículo quiero darles un vistazo en profundidad. Son conceptos que pueden confundirse, es por esto que intentaré resaltar las diferencias entre ambos conceptos después de haber investigado un poco. 

Definiciones
Son patrones orientados a objetos muy [...]]]></description>
			<content:encoded><![CDATA[<!-- matched  --><!-- final 0 --><p>Seguramente alguna vez hemos oído o leído sobre los conceptos de &#8220;pool de objetos&#8221; o &#8220;cache de objetos&#8221;. En este artículo quiero darles un vistazo en profundidad. Son conceptos que pueden confundirse, es por esto que intentaré resaltar las diferencias entre ambos conceptos después de haber investigado un poco. </p>
<p><span id="more-1086"></span></p>
<h2 id="toc-definiciones"><strong>Definiciones</strong></h2>
<p>Son patrones orientados a objetos muy potentes y muy usados en diferentes tecnologías, sobre todo en J2EE.</p>
<p>Cuando hablamos de pool, ésta se concibe como una colección de objetos sin estado. Algunos ejemplos serían una pool de conexiones a base de datos o una pool de item renderers. </p>
<p>En cambio, la cache se define como una colección de objetos con estado definido, por ejemplo, cuando trabajamos con servicios con una capa como puede ser Spring, los servicios se cachean.</p>
<p>La diferencia más importante entre estos dos conceptos está en lo que contienen, es decir, usaremos una cache cuando nos interese guardar un estado de un objeto concreto. En cambio usaremos una pool cuando necesitamos guardar objetos de los cuales no nos importa perder su estado.</p>
<p>Otras consideraciones importantes son:</p>
<ul>
<li>Cuando pedimos un objeto de una pool, se nos puede servir cualquier objeto de esta pool.</li>
<li>En cambio, cuando pedimos un objeto de una cache, esperamos un objeto específico de esta cache.</li>
<li>Si todos los objetos de la pool están en uso cuando pedimos un elemento, esperaremos hasta que se libere cualquier objeto o se cree uno, si es necesario.</li>
<li>Si todos los objetos de la cache están en uso cuando se pide uno, tocará esperar hasta que el objeto deseado esté libre, aunque hubiera muchos elementos disponibles en la cache, ya que nos interesa uno concreto.</li>
<li>El tamaño de una pool puede variar según el número de recursos que necesitemos en un momento determinado.</li>
<li>El tamaño de una cache suele ser fijo.</li>
</ul>
<h2 id="toc-implementacion"><strong>Implementación</strong></h2>
<p>Podemos decir que la manera más habitual una cache se representa como un diccionario, es decir, como una colección de parejas id-value, de manera que cuando necesitamos un recurso determinado, éste es buscado en el diccionario y se devuelve el valor.</p>
<p>Para representar una pool, también podemos hacerlo con un diccionario, pero se suele crear una clase que controle los recursos, con una lógica no tan sencilla como la de una cache.</p>
<h2 id="toc-sobre-las-pools"><strong>Sobre las pools</strong></h2>
<p>Una pool de objetos puede ofrecer una mejora de rendimiento en una aplicación. Es adecuada en aquellas situaciones en la que nos puede penalizar el proceso de creación de objetos o en las que el número de objetos de un determinado tipo puede hacer degradar el rendimiento la aplicación.  </p>
<p>En la siguiente imagen se muestra un ejemplo típico de Pool:</p>
<p><img src="http://www.madeinflex.com/wp-content/uploads/2010/01/pool.png" alt="pool" title="pool" width="565" height="109" class="aligncenter size-full wp-image-1094" /></p>
<p>La pool está implementada como un singleton, el cual nos permite pedir un elemento, liberar un elemento o settear el valor máximo de elementos que la pool puede albergar.</p>
<p>Las pools se diferencian en tres tipos: </p>
<ul>
<li>Pool sin límite: tiene un tamaño ilimitado, de manera que nos asegura que siempre devolverá un objeto cuando lo necesitemos.</li>
<li>Pool nivelada: tiene un tamaño constante. La pool se rellena durante su construcción, de manera que la carga de memoria la tenemos en tiempo de creación de la pool y no cuando se piden elementos.</li>
<li>Pool en cola: La pool tiene un tamaño mínimo y se rellena durante la construcción. No tiene límite, lo que le permite crecer. La diferencia está en que cuando pedimos un recurso de la pool y éstos están todos ocupados, la petición se pone en cola.</li>
<p></lu></p>
<p>Cada aproximación de las anteriores expuestas tiene sus beneficios y depende del contexto, el uso de una o de otra.</p>
<h2 id="toc-conclusion"><strong>Conclusión</strong></h2>
<p>Espero que este post haya servido para aclarar ambos conceptos. A continuación os dejo unos links interesantes sobre este tema:<br />
<a href="http://elromdesign.com/blog/2009/11/05/object-pooling-in-flex-actionsctipt/">http://elromdesign.com/blog/2009/11/05/object-pooling-in-flex-actionsctipt/</a><br />
<a href="http://www.lostinactionscript.com/blog/index.php/2008/10/30/object-pooling-in-as3/">http://www.lostinactionscript.com/blog/index.php/2008/10/30/object-pooling-in-as3/</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.madeinflex.com/2010/02/01/object-pool-and-caching/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>DeviceDays</title>
		<link>http://www.madeinflex.com/2010/01/29/devicedays/</link>
		<comments>http://www.madeinflex.com/2010/01/29/devicedays/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 08:48:00 +0000</pubDate>
		<dc:creator>Joan Garnet</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[blocketpc]]></category>
		<category><![CDATA[devicedays]]></category>
		<category><![CDATA[dispositivos]]></category>

		<guid isPermaLink="false">http://www.madeinflex.com/?p=1154</guid>
		<description><![CDATA[<!-- matched  --><!-- final 0 -->Nuestros buenos amigos de BlocketPc han organizado del evento DeviceDays el cual está orientado al desarrollo Flash sobre dispositivos y terminales móviles.

Si quieres aprender cómo se programa en ActionScript 3 para iPhone y Flash Player 10.1 sólo tienes que registrarte en la web oficial de DeviceDays.

Por parte de MadeInFlex estaremos presentes varios integrantes del equipo [...]]]></description>
			<content:encoded><![CDATA[<!-- matched  --><!-- final 0 --><p>Nuestros buenos amigos de <a href="http://www.blocketpc.com/">BlocketPc</a> han organizado del evento <a href="http://devicedays.blocketpc.com/2010/">DeviceDays</a> el cual está orientado al desarrollo Flash sobre dispositivos y terminales móviles.<br />
<img src="http://www.madeinflex.com/wp-content/uploads/2010/01/devicedays.png" alt="devicedays" title="devicedays" width="345" height="106" class="alignnone size-full wp-image-1161" /><br />
Si quieres aprender cómo se programa en ActionScript 3 para iPhone y Flash Player 10.1 sólo tienes que <a href="http://devicedays.blocketpc.com/2010/inscripcion.php">registrarte</a> en la web oficial de DeviceDays.<br />
<span id="more-1154"></span><br />
Por parte de MadeInFlex estaremos presentes varios integrantes del equipo para no perdernos ni un bit de información de lo que los expertos del mundo del desarrollo Flash en dispositivos nos puedan contar.<br />
No podemos obviar que el desarrollo Flash en dispositivos está entrando en su verdadera luna de miel y que en los próximos tiempos, con la salida del <a href="http://www.blocketpc.com/2010/01/09/flash-player-10-1/">Flash Player 10.1</a> y la ejecución del <a href="http://www.blocketpc.com/2009/10/06/open-screen-project-google-y-rim/">Open Screen Project</a> en todo su esplendor vamos a ver una explosión de contenido que vamos a tener que desarrollar&#8230; nosotros!</p>
<p>Las conferencias son totalmente gratuitas y cuentan con ponentes como Richard Galván, Mark Doherty o Enrique Duvós entre otros. Así que ya sabes, si el día 19 de Febrero estás por Barcelona, no dudes en ir a las oficinas de Adobe y disfrutar de unas buenas jornadas sobre la Flash Platform.</p>
<ul>
<li><a href="http://devicedays.blocketpc.com/2010/">Site del evento</a></li>
<li><a href="http://devicedays.blocketpc.com/2010/inscripcion.php">Inscripción</a></li>
<li><a href="http://devicedays.blocketpc.com/2010/talleres.php">Talleres</a></li>
<li><a href="http://devicedays.blocketpc.com/2010/lugar.php">Lugar</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.madeinflex.com/2010/01/29/devicedays/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fx4 VIII: Soporte CSS ampliado</title>
		<link>http://www.madeinflex.com/2010/01/28/fx4-viii-soporte-css-ampliado/</link>
		<comments>http://www.madeinflex.com/2010/01/28/fx4-viii-soporte-css-ampliado/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 14:04:05 +0000</pubDate>
		<dc:creator>Joan Garnet</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://www.madeinflex.com/?p=1106</guid>
		<description><![CDATA[<!-- matched  --><!-- final 0 -->En esta cuarta versión de Flex se han producido cambios considerables en la arquitectura de componentes así como en el lenguaje MXML. Esto se ha hecho para potenciar varios aspectos como son la productividad, facilitar el workflow designer / developer o la integración con herramientas externas.
En esta entrada se verá en profundidad las novedades referentes [...]]]></description>
			<content:encoded><![CDATA[<!-- matched  --><!-- final 0 --><p>En esta cuarta versión de Flex se han producido cambios considerables en la arquitectura de componentes así como en el lenguaje MXML. Esto se ha hecho para potenciar varios aspectos como son la productividad, facilitar el workflow designer / developer o la integración con herramientas externas.<br />
En esta entrada se verá en profundidad las novedades referentes al soporte CSS en Flex 4.</p>
<p><span id="more-1106"></span></p>
<div class="toc">
<ol>
<li><a href="http://www.madeinflex.com/2010/01/28/fx4-viii-soporte-css-ampliado/#toc-espacios-de-nombre">Espacios de nombre</a></li>
<li><a href="http://www.madeinflex.com/2010/01/28/fx4-viii-soporte-css-ampliado/#toc-selector-de-clase-multiple">Selector de clase múltiple</a></li>
<li><a href="http://www.madeinflex.com/2010/01/28/fx4-viii-soporte-css-ampliado/#toc-selector-por-id">Selector por #id</a></li>
<li><a href="http://www.madeinflex.com/2010/01/28/fx4-viii-soporte-css-ampliado/#toc-selectores-descendientes">Selectores descendientes</a></li>
<li><a href="http://www.madeinflex.com/2010/01/28/fx4-viii-soporte-css-ampliado/#toc-pseudo-selectores">Pseudo selectores</a></li>
<li><a href="http://www.madeinflex.com/2010/01/28/fx4-viii-soporte-css-ampliado/#toc-combinando">Combinando</a></li>
<li><a href="http://www.madeinflex.com/2010/01/28/fx4-viii-soporte-css-ampliado/#toc-conclusion">Conclusión</a></li>
<li><a href="http://www.madeinflex.com/2010/01/28/fx4-viii-soporte-css-ampliado/#toc-notas">Notas</a></li>
</ol>
</div>
<h2 id="toc-espacios-de-nombre">Espacios de nombre</h2>
<p>A partir de Flex 4 todos los selectores CSS requieren de un espacio de nombres para evitar la ambiguedad entre nombres de clase definidos en halo y spark.<br />
Un ejemplo de esta situación la podemos encontrar en la clase Button.<br />
Para spark la clase Button se define en <code>spark.components.Button</code>, en cambio para halo se define en <code>mx.controls.Button</code>. Lo que se puede apreciar es que en ambos casos las clases se llaman igual. Si se hubiera mantenido el modelo CSS de Flex <= 3 tendríamos un problema de ambiguedad al querer redefinir los estilos de la clase Button como se puede ver.<br />
El código que necesitamos para definir los estilos de Button para spark y halo a la vez sería el siguiente:</p>
<div class="igBar"><span id="lmxml-7"><a href="#" onclick="javascript:showPlainTxt('mxml-7'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">MXML:</span>
<div id="mxml-7">
<div class="mxml">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">"1.0"</span> encoding=<span style="color: #ff0000;">"utf-8"</span>?<span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Application</span> xmlns:fx=<span style="color: #ff0000;">"http://ns.adobe.com/mxml/2009"</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; xmlns:s=<span style="color: #ff0000;">"library://ns.adobe.com/flex/spark"</span> </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; xmlns:mx=<span style="color: #ff0000;">"library://ns.adobe.com/flex/mx"</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:Style</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; @namespace s &quot;library://ns.adobe.com/flex/spark&quot;;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; @namespace mx &quot;library://ns.adobe.com/flex/mx&quot;;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; s|Button{ lineThrough: true; }</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; mx|Button{ icon: Embed('favorite.png'); }</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; .botonRedondeado{ cornerRadius: 10; }</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/fx:Style</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:layout</span><span style="color: #7400FF;">&gt;</span></span><span style="color: #000000;"><span style="color: #7400FF;">&lt;s:VerticalLayout</span> paddingLeft=<span style="color: #ff0000;">"50"</span> paddingTop=<span style="color: #ff0000;">"50"</span> <span style="color: #7400FF;">/&gt;</span></span><span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:layout</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Button</span> label=<span style="color: #ff0000;">"Spark Button 1"</span> <span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Button</span> label=<span style="color: #ff0000;">"Spark Button 2"</span> styleName=<span style="color: #ff0000;">"botonRedondeado"</span> <span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Button</span> label=<span style="color: #ff0000;">"Halo Button 1"</span> <span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Button</span> label=<span style="color: #ff0000;">"Halo Button 2"</span> styleName=<span style="color: #ff0000;">"botonRedondeado"</span> <span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:Application</span><span style="color: #7400FF;">&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Obtenemos esto:<br />
<img src="http://www.madeinflex.com/wp-content/uploads/2010/01/namespaces.png" alt="namespaces" title="namespaces" width="176" height="153" class="alignnone size-full wp-image-1113" /><br />
Podemos observar dos peculiaridades con respecto a Flex3. La primera las declaraciones de espcios de nombre <code>@namespace alias "URI";</code> y la segunda la forma de contextualizar las declaraciones con <code>alias|ClassName</code>.<br />
Por otra parte vemos que podemos seguir utilizando los <a href="#nota1">selectores de clase</a> de siempre de la misma forma que antes y que son aplicables a componentes halo y spark indistintamente.</p>
<h2 id="toc-selector-de-clase-multiple">Selector de clase múltiple</h2>
<p>Una forma muy potente de modularizar los estilos es definirlos de la forma más atómica posible. Cuanto más se especialice la declaración de un estilo más versatil será.<br />
A partir de Flex 4 se pueden asignar múltiples <a href="#nota1">selectores de clase</a> a un mismo componente separados por un espacio:</p>
<div class="igBar"><span id="lmxml-8"><a href="#" onclick="javascript:showPlainTxt('mxml-8'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">MXML:</span>
<div id="mxml-8">
<div class="mxml">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">"1.0"</span> encoding=<span style="color: #ff0000;">"utf-8"</span>?<span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Application</span> xmlns:fx=<span style="color: #ff0000;">"http://ns.adobe.com/mxml/2009"</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; xmlns:s=<span style="color: #ff0000;">"library://ns.adobe.com/flex/spark"</span> </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; xmlns:mx=<span style="color: #ff0000;">"library://ns.adobe.com/flex/mx"</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:Style</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; .iconoFavoritos{ icon: Embed('favorite.png'); }</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; .botonRedondeado{ cornerRadius: 10; }</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; .textoRojo{ color: #FF0000; }</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; .texto25{ fontSize: 25; }</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/fx:Style</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:layout</span><span style="color: #7400FF;">&gt;</span></span><span style="color: #000000;"><span style="color: #7400FF;">&lt;s:VerticalLayout</span> paddingLeft=<span style="color: #ff0000;">"50"</span> paddingTop=<span style="color: #ff0000;">"50"</span> <span style="color: #7400FF;">/&gt;</span></span><span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:layout</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Button</span> label=<span style="color: #ff0000;">"Spark Button 2"</span> styleName=<span style="color: #ff0000;">"texto25 botonRedondeado textoRojo"</span> <span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Button</span> label=<span style="color: #ff0000;">"Halo Button 2"</span> styleName=<span style="color: #ff0000;">"iconoFavoritos textoRojo"</span> <span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:Application</span><span style="color: #7400FF;">&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Obtenemos esto:<br />
<img src="http://www.madeinflex.com/wp-content/uploads/2010/01/multiple_selectors.png" alt="multiple_selectors" title="multiple_selectors" width="239" height="94" class="alignnone size-full wp-image-1116" /></p>
<h2 id="toc-selector-por-id">Selector por #id</h2>
<p>Otra característica añadida es el soporte para selectores por identificador, al más puro estilo HTML:</p>
<div class="igBar"><span id="lmxml-9"><a href="#" onclick="javascript:showPlainTxt('mxml-9'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">MXML:</span>
<div id="mxml-9">
<div class="mxml">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">"1.0"</span> encoding=<span style="color: #ff0000;">"utf-8"</span>?<span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Application</span> xmlns:fx=<span style="color: #ff0000;">"http://ns.adobe.com/mxml/2009"</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; xmlns:s=<span style="color: #ff0000;">"library://ns.adobe.com/flex/spark"</span> </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; xmlns:mx=<span style="color: #ff0000;">"library://ns.adobe.com/flex/mx"</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:Style</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; #favoritos{ </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; icon: Embed('favorite.png');</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cornerRadius: 10;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fontSize: 25;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; }</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/fx:Style</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:layout</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:VerticalLayout</span> paddingLeft=<span style="color: #ff0000;">"50"</span> paddingTop=<span style="color: #ff0000;">"50"</span> <span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:layout</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Button</span> id=<span style="color: #ff0000;">"favoritos"</span> label=<span style="color: #ff0000;">"Favoritos"</span> <span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:Application</span><span style="color: #7400FF;">&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Obtenemos esto:<br />
<img src="http://www.madeinflex.com/wp-content/uploads/2010/01/id_selector.png" alt="id_selector" title="id_selector" width="183" height="63" class="alignnone size-full wp-image-1119" /></p>
<h2 id="toc-selectores-descendientes">Selectores descendientes</h2>
<p>Los selectores descendientes nos ofrecen la posibilidad de contextualizar las declaraciones de nuestros estilos dentro del ámbito de una clase determinada.<br />
Por ejemplo, si queremos declarar un estilo que afecte a todos los campos de texto que estén dentro de un formulario lo haríamos de la siguiente forma:</p>
<div class="igBar"><span id="lmxml-10"><a href="#" onclick="javascript:showPlainTxt('mxml-10'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">MXML:</span>
<div id="mxml-10">
<div class="mxml">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">"1.0"</span> encoding=<span style="color: #ff0000;">"utf-8"</span>?<span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Application</span> xmlns:fx=<span style="color: #ff0000;">"http://ns.adobe.com/mxml/2009"</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; xmlns:s=<span style="color: #ff0000;">"library://ns.adobe.com/flex/spark"</span> </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; xmlns:mx=<span style="color: #ff0000;">"library://ns.adobe.com/flex/mx"</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:Style</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; @namespace s &quot;library://ns.adobe.com/flex/spark&quot;;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; @namespace mx &quot;library://ns.adobe.com/flex/mx&quot;;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; mx|FormItem s|TextInput{ color: #FF0000; }</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; mx|FormItem mx|TextInput{ color: #00FF00; }</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/fx:Style</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:layout</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:VerticalLayout</span> paddingLeft=<span style="color: #ff0000;">"50"</span> paddingTop=<span style="color: #ff0000;">"50"</span> <span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:layout</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:TextInput</span> text=<span style="color: #ff0000;">"TextInput fuera de Form"</span><span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Form</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:FormItem</span> label=<span style="color: #ff0000;">"Dentro FormItem"</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:TextInput</span> text=<span style="color: #ff0000;">"Spark TextInput"</span><span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:TextInput</span> text=<span style="color: #ff0000;">"Halo TextInput"</span><span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:FormItem</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:Form</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:Application</span><span style="color: #7400FF;">&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Obtenemos esto:<br />
<img src="http://www.madeinflex.com/wp-content/uploads/2010/01/descendant_selector.png" alt="descendant_selector" title="descendant_selector" width="326" height="127" class="alignnone size-full wp-image-1123" /></p>
<h2 id="toc-pseudo-selectores">Pseudo selectores</h2>
<p>Los pseudo selectores permiten aplicar estilos sobre un componente teniendo en cuenta el <em>skin state</em> en el que está. Para ello se debe tener conocimiento de los estados de skin disponibles para el componente en cuestión.<br />
Por ejemplo, la clase <code>spark.components.Button</code> dispone de los estados <code>up</code>, <code>over</code>, <code>down</code> y <code>disabled</code> (cada componente tiene especificados sus skin states en la documentación ASDoc), por lo tanto podemos sacar partido de los pseudo selectores CSS del siguiente modo:</p>
<div class="igBar"><span id="lmxml-11"><a href="#" onclick="javascript:showPlainTxt('mxml-11'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">MXML:</span>
<div id="mxml-11">
<div class="mxml">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">"1.0"</span> encoding=<span style="color: #ff0000;">"utf-8"</span>?<span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Application</span> xmlns:fx=<span style="color: #ff0000;">"http://ns.adobe.com/mxml/2009"</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; xmlns:s=<span style="color: #ff0000;">"library://ns.adobe.com/flex/spark"</span> </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; xmlns:mx=<span style="color: #ff0000;">"library://ns.adobe.com/flex/mx"</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:Style</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; @namespace s &quot;library://ns.adobe.com/flex/spark&quot;;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; @namespace mx &quot;library://ns.adobe.com/flex/mx&quot;;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; s|Button:up{ fontSize: 10; }</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; s|Button:over{ fontSize: 20; }</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; s|Button:down{ fontSize: 30; }</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/fx:Style</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:layout</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:VerticalLayout</span> paddingLeft=<span style="color: #ff0000;">"50"</span> paddingTop=<span style="color: #ff0000;">"50"</span> <span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:layout</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Button</span> label=<span style="color: #ff0000;">"Spark Button"</span><span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:Application</span><span style="color: #7400FF;">&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Obtenemos esto:<br />
Up:<br />
<img src="http://www.madeinflex.com/wp-content/uploads/2010/01/button_up.png" alt="button_up" title="button_up" width="116" height="52" class="alignnone size-full wp-image-1126" /><br />
Over:<br />
<img src="http://www.madeinflex.com/wp-content/uploads/2010/01/button_over.png" alt="button_over" title="button_over" width="179" height="59" class="alignnone size-full wp-image-1127" /><br />
Down:<br />
<img src="http://www.madeinflex.com/wp-content/uploads/2010/01/button_down.png" alt="button_down" title="button_down" width="234" height="75" class="alignnone size-full wp-image-1128" /></p>
<h2 id="toc-combinando">Combinando</h2>
<p>Por supuesto lo más interesante de todo es que todas estas funcionalidades las podemos combinar:</p>
<div class="igBar"><span id="lmxml-12"><a href="#" onclick="javascript:showPlainTxt('mxml-12'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">MXML:</span>
<div id="mxml-12">
<div class="mxml">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">"1.0"</span> encoding=<span style="color: #ff0000;">"utf-8"</span>?<span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Application</span> xmlns:fx=<span style="color: #ff0000;">"http://ns.adobe.com/mxml/2009"</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; xmlns:s=<span style="color: #ff0000;">"library://ns.adobe.com/flex/spark"</span> </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; xmlns:mx=<span style="color: #ff0000;">"library://ns.adobe.com/flex/mx"</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:Style</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; @namespace s &quot;library://ns.adobe.com/flex/spark&quot;;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; @namespace mx &quot;library://ns.adobe.com/flex/mx&quot;;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; mx|Panel mx|ControlBar s|Button:up{ color: #FF0000; fontSize: 6; }</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; mx|Panel mx|ControlBar s|Button:over{ color: #00FF00; fontSize: 30; }</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; mx|Panel mx|Form #formItem2 s|TextInput{ color: #0000FF; }</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/fx:Style</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:layout</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:VerticalLayout</span> paddingLeft=<span style="color: #ff0000;">"50"</span> paddingTop=<span style="color: #ff0000;">"50"</span> <span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:layout</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Panel</span> title=<span style="color: #ff0000;">"Ejemplo"</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Form</span> width=<span style="color: #ff0000;">"100%"</span> height=<span style="color: #ff0000;">"100%"</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:FormItem</span> label=<span style="color: #ff0000;">"Label"</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:TextInput</span> text=<span style="color: #ff0000;">"Lorem Ipsum"</span><span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:FormItem</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:FormItem</span> id=<span style="color: #ff0000;">"formItem2"</span> label=<span style="color: #ff0000;">"Label"</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:TextInput</span> text=<span style="color: #ff0000;">"Lorem Ipsum"</span><span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:FormItem</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:Form</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:ControlBar</span> horizontalAlign=<span style="color: #ff0000;">"right"</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Button</span> label=<span style="color: #ff0000;">"Spark Button"</span><span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:ControlBar</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:Panel</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:Application</span><span style="color: #7400FF;">&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Obtenemos esto:<br />
Up:<br />
<img src="http://www.madeinflex.com/wp-content/uploads/2010/01/combinando_up.png" alt="combinando_up" title="combinando_up" width="255" height="199" class="alignnone size-full wp-image-1131" /><br />
Over:<br />
<img src="http://www.madeinflex.com/wp-content/uploads/2010/01/combinando_over1.png" alt="combinando_over" title="combinando_over" width="268" height="225" class="alignnone size-full wp-image-1133" /></p>
<h2 id="toc-conclusion">Conclusión</h2>
<p>Con Flex4 se dispone de una mayor versatilidad y control en lo que a declaración de estilos se refiere. La implementación CSS de Flex <= 3 dejaba bastante que desear y este paso sin duda está apuntando hacia el buen camino.<br />
Cabe destacar que se dipone de una API AS3 para asignar todos estos estilos de forma programática y que no dudo se cubrirá en una futura entrada así que, manteneos atentos!</p>
<h2 id="toc-notas">Notas</h2>
<p><a name="nota1"/>&bull; Los selectores de clase son los que llevan punto '.' antes del identificador. Por ejemplo <code>.botonRedondeado{}</code>, los selectores de tipo son los que se asocian con una clase. Por ejemplo <code>s|Button</code></p>]]></content:encoded>
			<wfw:commentRss>http://www.madeinflex.com/2010/01/28/fx4-viii-soporte-css-ampliado/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>GeoStratum 2.0</title>
		<link>http://www.madeinflex.com/2010/01/02/geostratum-2-0/</link>
		<comments>http://www.madeinflex.com/2010/01/02/geostratum-2-0/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 17:21:11 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Casos de uso]]></category>

		<guid isPermaLink="false">http://www.madeinflex.com/?p=1076</guid>
		<description><![CDATA[<!-- matched  --><!-- final 0 -->Nos complace presentar un nuevo producto para nuestra sección de Casos de Uso. Se trata de GeoStratum 2.0, un nuevo producto RIA de ultimísima generación basado en Flex y Java y construido sobre la plataforma avanzada de producción RIA llamada RIAlity. Ambos productos, GeoStratum y RIAlity son obra de Codeoscopic.













GeoStratum es un sistema de información [...]]]></description>
			<content:encoded><![CDATA[<!-- matched  --><!-- final 0 --><p>Nos complace presentar un nuevo producto para nuestra sección de <a href="http://www.madeinflex.com/categoria/casos-de-uso/">Casos de Uso</a>. Se trata de <strong>GeoStratum 2.0</strong>, un nuevo producto <strong>RIA</strong> de ultimísima generación basado en <strong>Flex</strong> y <strong>Java</strong> y construido sobre la plataforma avanzada de producción RIA llamada <a href="http://www.madeinflex.com/2008/11/03/arquitecturas-avanzadas-flexjee-riality/">RIAlity</a>. Ambos productos, <strong>GeoStratum</strong> y <strong>RIAlity</strong> son obra de <a href="http://www.codeoscopic.com">Codeoscopic</a>.</p>
<div align="center">
<object width="400" 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="400" 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>
</div>
<p></p>
<p><span id="more-1076"></span></p>
<p><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 foma 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,...), servicios de logística, polígonos industriales, parques naturales, etc...</p>]]></content:encoded>
			<wfw:commentRss>http://www.madeinflex.com/2010/01/02/geostratum-2-0/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Essential ActionScript 3.0 para iPhone</title>
		<link>http://www.madeinflex.com/2009/12/14/essential-actionscript-3-0-para-iphone/</link>
		<comments>http://www.madeinflex.com/2009/12/14/essential-actionscript-3-0-para-iphone/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 20:32:53 +0000</pubDate>
		<dc:creator>Edgar Parada</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Recursos]]></category>

		<guid isPermaLink="false">http://www.madeinflex.com/?p=1070</guid>
		<description><![CDATA[<!-- matched  --><!-- final 0 -->Son pocos los libros que se vuelven referencia en el medio y Essential ActionScript 3.0 de Colin Moock para los desarrolladores Flash/Flex es uno de ellos. Ahora podemos disponer de todo este material en una fracción del peso y del costo para nuestro iPhone. Aquí algunos datos interesantes: el libro en versión impresa pesa 1270 [...]]]></description>
			<content:encoded><![CDATA[<!-- matched  --><!-- final 0 --><p>Son pocos los libros que se vuelven referencia en el medio y <a href="http://www.moock.org/eas3/">Essential ActionScript 3.0 de Colin Moock</a> para los desarrolladores Flash/Flex es uno de ellos. Ahora podemos disponer de todo este material en una fracción del peso y del costo para nuestro iPhone. Aquí algunos datos interesantes: el libro en versión impresa pesa 1270 gramos y cuesta $54 usd, un iPhone pesa 135 gramos y la aplicación cuesta $5 usd.<br />
<span id="more-1070"></span><br />
<img src="http://www.madeinflex.com/wp-content/uploads/2009/12/eas3_iphone.jpg" alt="eas3_iphone" title="eas3_iphone" width="498" height="366" class="alignnone size-full wp-image-1072" /></p>
<p>La <em>experiencia de usuario</em> es algo que se agradece mucho, dentro de las funciones principales están:</p>
<ul>
<li>Navegación Gestual de Páginas.</li>
<li>Graduación del Brillo.</li>
<li>Anotaciones.</li>
<li>Diccionario de Referencia.</li>
<li>Fucnión de Búsqueda Inteligente.</li>
<li>Cambio de alineación y tamaño del texto.</li>
</ul>
<p>Cabe destacar que hay otros títulos disponibles como el <em>Flex Cookbok, Search Engine Optimization for Flash, AIR for Javascript Developers,</em> etc.</p>]]></content:encoded>
			<wfw:commentRss>http://www.madeinflex.com/2009/12/14/essential-actionscript-3-0-para-iphone/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Disponibles las betas de AIR 2 y Flash Player 10.1</title>
		<link>http://www.madeinflex.com/2009/11/17/disponibles-las-betas-de-air-2-y-flash-player-10-1/</link>
		<comments>http://www.madeinflex.com/2009/11/17/disponibles-las-betas-de-air-2-y-flash-player-10-1/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 09:37:37 +0000</pubDate>
		<dc:creator>Sergi Dote Teixidor</dc:creator>
				<category><![CDATA[Noticias]]></category>

		<guid isPermaLink="false">http://www.madeinflex.com/?p=1063</guid>
		<description><![CDATA[<!-- matched  --><!-- final 0 -->Esta noche se han hecho públicas las betas de AIR 2 y de Flash Player 10.1 en Adobe Labs. Es la primera vez que simultáneamente se publica una versión de runtime para Desktop (AIR) y para browser (Flash Player), además disponible para las tres plataformas (Mac, Windows y Linux) .

Comentemos un poco las mejoras en [...]]]></description>
			<content:encoded><![CDATA[<!-- matched  --><!-- final 0 --><p>Esta noche se han hecho públicas las betas de AIR 2 y de Flash Player 10.1 en Adobe Labs. Es la primera vez que simultáneamente se publica una versión de runtime para Desktop (AIR) y para browser (Flash Player), además disponible para las tres plataformas (Mac, Windows y Linux) .<br />
<span id="more-1063"></span></p>
<p>Comentemos un poco las mejoras en ambos productos: </p>
<h2 id="toc-flash-player-10-1">Flash player 10.1</h2>
<p> Se han añadido nuevas APIs y optimizaciones que nos aportan muchos beneficios. Destacamos entre otras:</p>
<ul>
<li>Handler global de errores</li>
<li>Soporte globalizado</li>
<li> Soporte para text inputs no físicos (dispositivos móbiles)</li>
<li>Multi-touch y gestures</li>
<li>Soporte para sensores de tipo accelerometer</li>
<li>Control optimizado de los SWF para móbiles</li>
<li>Sleep mode para reducir el consumo de la bateria en los dispositivos móbiles</li>
<li>Aceleración gráfica por hardware</li>
<li>Decodificación del formato H.264</li>
<li>Frame rate adaptativo</li>
<li>Mejor integración del browser</li>
<li>HTTP streaming</li>
<li>Acceso al micrófono</li>
</ul>
<p>Para mitad del 2010 se esperan otras mejoras que ya iremos comentando.<br />
Otra particularidad de Flash Player 10.1 es la optimización. Según Adobe es muy importante, ya que sin tener que añadir código extra, se experimenta un mejor rendimiento. En la imagen siguiente podemos ver una comparativa con la versión anterior de Flash Player:</p>
<p><img src="http://www.madeinflex.com/wp-content/uploads/2009/11/flash_player_mem_footprint-300x196.png" alt="flash_player_mem_footprint" title="flash_player_mem_footprint" width="300" height="196" class="aligncenter size-medium wp-image-1064" /></p>
<h2 id="toc-air-2-0">AIR 2.0</h2>
<p>Muchas mejoras aporta esta nueva versión del runtime. Podemos destacar: </p>
<ul>
<li>Multi-touch y gestures</li>
<li>Apertura de ficheros con la aplicación por defecto</li>
<li>Detección de volúmenes de almazenaje</li>
<li>Comunicación con procesos nativos</li>
<li>Drag and Drop de ficheros no existentes que se generan on demand</li>
<li>Server Sockets: tenemos Datagram Sockets, Encrypted Sockets, soporte IPv6 y acceso a la información de la red a bajo nivel.</li>
<li>Resolución DNS</li>
<li>Encoding local de audio</li>
<li>Handler global de errores</li>
<li>Optimizaciones de CPU y memory</li>
</ul>
<p>No están citadas todas las características de ambos productos, si quereis verlas todas, podeis ir a Adobe Labs donde podreis consultarlas y descargar los runtimes y SDK's. </p>
<p>Iremos informando al respecto. </p>]]></content:encoded>
			<wfw:commentRss>http://www.madeinflex.com/2009/11/17/disponibles-las-betas-de-air-2-y-flash-player-10-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Usabilidad en la interacción persona &#8211; aplicación</title>
		<link>http://www.madeinflex.com/2009/11/11/usabilidad-en-la-interaccion-persona-aplicacion/</link>
		<comments>http://www.madeinflex.com/2009/11/11/usabilidad-en-la-interaccion-persona-aplicacion/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 18:00:38 +0000</pubDate>
		<dc:creator>Sergi Dote Teixidor</dc:creator>
				<category><![CDATA[Artículos]]></category>

		<guid isPermaLink="false">http://www.madeinflex.com/?p=1028</guid>
		<description><![CDATA[<!-- matched  --><!-- final 0 -->Una de las últimas asignaturas que cursé en la carrera y una de las más importantes desde mi punto de vista, trataba sobre interficies de usuario. Agradezco al profesor Jordi Regincós, un experto en este ámbito, que me haya permitido usar sus apuntes para este artículo.
A los developers de aplicaciones, en especial a nosotros, los [...]]]></description>
			<content:encoded><![CDATA[<!-- matched  --><!-- final 0 --><p>Una de las últimas asignaturas que cursé en la carrera y una de las más importantes desde mi punto de vista, trataba sobre interficies de usuario. Agradezco al profesor Jordi Regincós, un experto en este ámbito, que me haya permitido usar sus apuntes para este artículo.<br />
A los developers de aplicaciones, en especial a nosotros, los desarrolladores de RIA's, nos tiene que sonar el concepto de usabilidad, para los que no, me complace compartir con vosotros este post.<br />
<span id="more-1028"></span></p>
<h2 id="toc-introduccion"><strong>Introducción</strong></h2>
<p>A menudo se piensa que sólo el buen diseño de una aplicación hará que ésta sea atractiva; y no es así: si ésta no es usable, el usuario acabará por aborrecerla, por muy bueno que sea el diseñador. </p>
<p>La usabilidad se define en la wikipedia como la facilidad con la cual las personas pueden utilizar un objeto con el fin de alcanzar un objetivo concreto. La usabilidad también puede referirse al estudio de los principios que hay tras la eficacia percibida de un objeto. </p>
<p>En el ámbito de la interacción persona - aplicación, la usabilidad se refiere a la claridad y la elegancia con que se diseña la interacción con una aplicación. No debemos confundir la usabilidad con la experiencia de usuario: están relacionadas de alguna forma, pero no son lo mismo, ya que la experiencia de usuario se refiere al conjunto de factores y elementos relativos a la interacción del usuario, con un entorno o dispositivo concretos, cuyo resultado es la generación de una percepción positiva o negativa de dicho servicio. </p>
<p>La usabilidad tiene en cuenta estos aspectos:</p>
<ul>
<li>El tipo o tipos específicos de usuario/s</li>
<li>La tarea o tareas para las cuales el sistema se ha diseñado</li>
<li>El contexto en el que se da la interacción</li>
</ul>
<p>Los conceptos de usabilidad y de modelo de interacción persona / aplicación están relacionados, ya que el grado de usabilidad facilitará o no esta interacción.</p>
<h2 id="toc-interaccion-persona-aplicacion"><strong>Interacción persona / aplicación</strong></h2>
<p>Hay distintos estilos de interacción entre persona y aplicación, pero todos quedan reflejados en el siguiente diagrama:</p>
<p><img src="http://www.madeinflex.com/wp-content/uploads/2009/11/usabilitat1-300x267.png" alt="usabilitat" title="usabilitat" width="300" height="267" class="aligncenter size-medium wp-image-1037" /></p>
<p>En el diagrama anterior se describe la interacción como un proceso cíclico que sigue las siguientes etapas:</p>
<p> 1- El usuario introduce datos mediante un dispositivo de entrada.<br />
 2- El dispositivo de entrada envía datos a la aplicación para que ésta realice una acción en el sistema.<br />
 3- La aplicación da una respuesta a la acción solicitada y refleja los cambios en el dispositivo de salida, el más común es el monitor.<br />
 4- El usuario interpreta la salida como resultado a la acción solicitada.</p>
<p>En el diagrama se observa que hay dos conceptos que pueden sorprender, los precipicios de ejecución y de evaluación. Vamos a explicar a continuación en que consisten.</p>
<h2 id="toc-precipicios-de-ejecucion-y-evaluacion"><strong>Precipicios de ejecución y evaluación</strong></h2>
<p>El concepto de precipicio de ejecución se define como la dificultad que tiene el usuario para traducir las intenciones en acciones sobre el sistema. Por ejemplo, en una web de compras online, sería la dificultad que encuentra para tomar cada decisión sobre el sistema que le llevará a comprar un producto.</p>
<p>En cambio, el precipicio de evaluación se define como la dificultad que tiene el usuario para decidir si las acciones que ha realizado sobre el sistema han servido para conseguir sus objetivos, en función de la interpretación de la respuesta que la aplicación da sobre el dispositivo de salida. Siguiendo con el ejemplo anterior, sería la dificultad que tiene el usuario para ir entendiendo los diferentes estadios del proceso de compra a partir del feedback de la aplicación.</p>
<p>Se considera que cuanto mayores son estos precipicios peor usabilidad tiene la aplicación; por lo tanto, uno de los objetivos de la interficie gráfica debe ser reducir al máximo estos precipicios.</p>
<h2 id="toc-beneficios-de-la-usabilidad"><strong>Beneficios de la usabilidad</strong></h2>
<p>Los más destacados son:</p>
<ul>
<li>Reducción de los costes de aprendizaje</li>
<li>Disminución de los costes de asistencia y ayuda al usuario</li>
<li>Optimización de los costes de diseño, rediseño y mantenimiento</li>
<li>Aumento de la tasa de conversión de visitantes a clientes de un sitio web</li>
<li>Mejora la imagen y el prestigio</li>
<li>Mejora la calidad de vida de los usuarios, ya que reduce su estrés, incrementa la satisfacción y la productividad</li>
</ul>
<h2 id="toc-principios-basicos-del-diseno-centrado-en-la-usabilidad"><strong>Principios básicos del diseño centrado en la usabilidad</strong></h2>
<p>Entre la multitud de expertos en usabilidad, me gustaría destacar a Donald A. Norman , ya que considero que los principios que difunde, son principios esenciales y universales que definen un buen diseño para conseguir una mejor usabilidad. Sus principios son:</p>
<ul>
<li>Visibilidad: las funcionalidades del sistema deben ser claramente visibles.</li>
<li>Realimentación: Debemos mostrar el resultado de las acciones que hemos realizado sobre el sistema.</li>
<li>Restricciones: Se deben determinar restricciones sobre que se puede y que no se puede hacer. Estas restricciones pueden depender de diferentes aspectos como por ejemplo de cómo la aplicación determina su uso, de qué modelo mental se ha hecho el usuario sobre el sistema o de las convenciones que el usuario tiene preconcebidas. </li>
<li>Correspondencias: Norman lo define como la relación entre los controles y como afectan al sistema.</li>
<li>Consistencia: Acciones similares sobre el sistema deben realizar resultados similares sobre el sistema.</li>
<li>Affordances: lo podemos traducir como “pistas” sobre los atributos de los elementos en pantalla, que nos ayuden a deducir como utilizarlos.</li>
</ul>
<h2 id="toc-principios-de-la-usabilidad"><strong>Principios de la usabilidad</strong></h2>
<p>Jakob Nielsen es considerado el creador del concepto de usabilidad. Él la definió como “atributo de calidad que mide lo fáciles de usar que son las interfaces”; es decir una aplicación usable es aquella en la que los usuarios pueden interactuar de la forma más fácil, cómoda, segura e inteligentemente posible.<br />
Jakob Nielsen dijo que es muy importante que una interfaz sea entendible, novedosa, comprensible, inteligente y atractiva.</p>
<p>Además definió sus propios principios de usabilidad que a continuación enumero:</p>
<ul>
<li>Visibilidad del estado del sistema</li>
<li>Correspondencia entre el sistema i el mundo real</li>
<li>El usuario debe ver consistencia entre acciones y resultados</li>
<li>Ayudar a los usuarios a reconocer errores y cómo recuperarse de ellos</li>
<li>Evitar errores</li>
<li>Aplicar la máxima de: “reconocer es mejor que recordar”</li>
<li>Flexibilizad y eficiencia</li>
<li>Diseño y estética adecuados</li>
<li>Ayuda disponible para el usuario</li>
</ul>
<p><strong>Para concluir…</strong><br />
Para los que no vean la importancia de la usabilidad, decir que está reconocida como un importante atributo de calidad del software, habiéndose ganado un espacio entre aspectos más tradicionales como el rendimiento y la fiabilidad. De hecho ya se habla de ingeniería de la usabilidad. En los últimos tiempos han surgido muchas consultorías sobre usabilidad debido a la importancia que ha adquirido.<br />
Para finalizar, si os interesa el ámbito de la usabilidad, os recomiendo que leais a Nielsen y a Norman; podeis encontrar información en la página web de su consultoría de usabilidad la <a href="http://www.nngroup.com/">Nielsen Norman Group</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.madeinflex.com/2009/11/11/usabilidad-en-la-interaccion-persona-aplicacion/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
