<?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"
	>

<channel>
	<title>¿y por qué no?</title>
	<atom:link href="http://www.yporqueno.es/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.yporqueno.es/blog</link>
	<description>Programación Flash</description>
	<pubDate>Wed, 16 Jun 2010 23:59:03 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>LoaderMax - Cola de carga</title>
		<link>http://www.yporqueno.es/blog/loadermax-cola-de-carga</link>
		<comments>http://www.yporqueno.es/blog/loadermax-cola-de-carga#comments</comments>
		<pubDate>Wed, 16 Jun 2010 23:57:26 +0000</pubDate>
		<dc:creator>Iván Gajate</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[carga]]></category>

		<category><![CDATA[cargador]]></category>

		<category><![CDATA[cargar]]></category>

		<category><![CDATA[cola]]></category>

		<category><![CDATA[load]]></category>

		<category><![CDATA[loader]]></category>

		<category><![CDATA[precargar]]></category>

		<guid isPermaLink="false">http://www.yporqueno.es/blog/?p=1252</guid>
		<description><![CDATA[De los creadores de TweenLite, acaba de salir LoaderMax, un sistema de carga de archivos en cola.
Esta librería es estupenda para cargar todas las imágenes de una galería de imágenes, los sonidos de un player, o todos los xml que queramos a la vez, controlando el progreso de carga y cuándo se termina.
Existen otras alternativas [...]]]></description>
			<content:encoded><![CDATA[<p>De los creadores de <em><a href="http://www.greensock.com/tweenlite/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.greensock.com');" target="_blank">TweenLite</a></em>, acaba de salir <em><strong><a href="http://www.greensock.com/loadermax/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.greensock.com');" target="_blank">LoaderMax</a></strong></em>, un sistema de carga de archivos en cola.</p>
<p>Esta librería es estupenda para cargar todas las imágenes de una galería de imágenes, los sonidos de un player, o todos los <em>xml</em> que queramos a la vez, controlando el progreso de carga y cuándo se termina.</p>
<p>Existen otras alternativas como <em><a href="http://code.google.com/p/bulk-loader/" onclick="javascript:pageTracker._trackPageview('/outbound/article/code.google.com');" target="_blank">Bulkloader</a></em>, pero aumentan el peso considerablemente y no me termina de convencer cómo están programadas.</p>
<p>Aún no he tenido tiempo de probar con detalle el LoaderMax, pero promete una integración sencilla en muy poco peso (10 Kb!)</p>
<p>Aquí un ejemplo básico de cómo se usa:</p>
<pre><span style="color: #0000ff">import</span> com.greensock.loading.*;
<span style="color: #0000ff">import</span> com.greensock.events.LoaderEvent;
<span style="color: #0000ff">import</span> com.greensock.loading.display.*;

<span style="color: #008000">// Creo una cola de carga</span>
<span style="color: #0000ff">var</span> queue:LoaderMax = <span style="color: #0000ff">new</span> LoaderMax({<span style="color: #0000ff">name</span>:"<span style="color: #8b0000">mainQueue</span>", maxConnections:1});

<span style="color: #008000">// Añado 20 imagenes a la cola</span>
<span style="color: #0000ff">for</span>(<span style="color: #0000ff">var</span> i:uint=1; i&lt;=20; i++){
	queue.append(<span style="color: #0000ff">new</span> ImageLoader("<span style="color: #8b0000">imgs/IMG</span>" + i + "<span style="color: #8b0000">.jpg</span>", {<span style="color: #0000ff">name</span>:"<span style="color: #8b0000">photo</span>"+i, onComplete:imagenCargada}) );
}

<span style="color: #008000">// Controlo cuando se termina de cargar cada imagen</span>
<span style="color: #0000ff">function</span> imagenCargada(event:LoaderEvent):<span style="color: #0000ff">void</span> {
    	<span style="color: #0000ff">var</span> image:ContentDisplay = event.target.content;
	image.x = <span style="color: #0000ff">Math</span>.random()*800;
	image.y = <span style="color: #0000ff">Math</span>.random()*600;
	image.scaleX = image.scaleY = <span style="color: #0000ff">Math</span>.random()*0.5;
	addChild(image);
}

<span style="color: #008000">// Comienzo la carga</span>
queue.load();</pre>
<p>Para descargarlo y ver mas ejemplos, ir a la página del <a href="http://www.greensock.com/loadermax/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.greensock.com');" target="_blank">LoaderMax</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yporqueno.es/blog/loadermax-cola-de-carga/feed</wfw:commentRss>
		</item>
		<item>
		<title>Duplicar un proyecto Flex</title>
		<link>http://www.yporqueno.es/blog/duplicar-un-proyecto-flex</link>
		<comments>http://www.yporqueno.es/blog/duplicar-un-proyecto-flex#comments</comments>
		<pubDate>Sat, 05 Jun 2010 12:12:21 +0000</pubDate>
		<dc:creator>Iván Gajate</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Tutoriales]]></category>

		<category><![CDATA[duplicar]]></category>

		<category><![CDATA[eclipse]]></category>

		<category><![CDATA[flex]]></category>

		<category><![CDATA[proyecto]]></category>

		<guid isPermaLink="false">http://www.yporqueno.es/blog/?p=1243</guid>
		<description><![CDATA[Hay una forma mucho más sencilla de hacerlo que la que publiqué hace un tiempo, basta con copiar y pegar el proyecto desde dentro de Eclipse (Flex).
Tenemos que tener abierto el proyecto, si no no funciona.

Cuando le demos a pegar, nos preguntará el nombre del proyecto. Es el momento de darle un nombre diferente para [...]]]></description>
			<content:encoded><![CDATA[<p>Hay una forma mucho más sencilla de hacerlo que la que <a href="http://www.yporqueno.es/blog/como-duplicar-un-proyecto-en-eclipse-flex" >publiqué hace un tiempo</a>, basta con <strong>copiar y pegar</strong> el proyecto desde dentro de <em>Eclipse</em> (<em>Flex</em>).</p>
<p>Tenemos que tener abierto el proyecto, si no no funciona.</p>
<p><a href="http://www.yporqueno.es/blog/wp-content/uploads/2010/06/copiar.gif" ><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="copiar" src="http://www.yporqueno.es/blog/wp-content/uploads/2010/06/copiar-thumb.gif" border="0" alt="copiar" width="398" height="468" /></a></p>
<p>Cuando le demos a pegar, nos preguntará el nombre del proyecto. Es el momento de darle un nombre diferente para que no entre en conflicto con el anterior:</p>
<p><a href="http://www.yporqueno.es/blog/wp-content/uploads/2010/06/cambiarnombre.gif" ><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="cambiar-nombre" src="http://www.yporqueno.es/blog/wp-content/uploads/2010/06/cambiarnombre-thumb.gif" border="0" alt="cambiar-nombre" width="457" height="271" /></a>Y listo, ya tenemos nuestro proyecto duplicado sin perder ninguna preferencia del proyecto <img src='http://www.yporqueno.es/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yporqueno.es/blog/duplicar-un-proyecto-flex/feed</wfw:commentRss>
		</item>
		<item>
		<title>AS3 - Acortar frases</title>
		<link>http://www.yporqueno.es/blog/as3-acortar-frases</link>
		<comments>http://www.yporqueno.es/blog/as3-acortar-frases#comments</comments>
		<pubDate>Mon, 17 May 2010 00:22:25 +0000</pubDate>
		<dc:creator>Iván Gajate</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Tutoriales]]></category>

		<category><![CDATA[cadena]]></category>

		<category><![CDATA[caracteres]]></category>

		<category><![CDATA[frase]]></category>

		<category><![CDATA[maximo]]></category>

		<category><![CDATA[recortar]]></category>

		<guid isPermaLink="false">http://www.yporqueno.es/blog/?p=1233</guid>
		<description><![CDATA[Una funcioncilla muy útil si queremos recortar la longitud de una frase a un número máximo de caracteres.
Acorta la frase sin romper las palabras, si una palabra se queda a medias, devuelve la cadena hasta el principio de esa palabra, y añade puntos suspensivos (…) al final.
El típico ejemplo es un destacado de una noticia [...]]]></description>
			<content:encoded><![CDATA[<p>Una funcioncilla muy útil si queremos recortar la longitud de una frase a un número máximo de caracteres.</p>
<p>Acorta la frase sin romper las palabras, si una palabra se queda a medias, devuelve la cadena hasta el principio de esa palabra, y añade puntos suspensivos (…) al final.</p>
<p>El típico ejemplo es un destacado de una noticia en el que sólo queremos mostrar las primeras palabras.</p>
<pre><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span> shortenString(string:<span style="color: #0000ff;">String</span>, maxCharacters:uint, append:<span style="color: #0000ff;">String</span>="<span style="color: #8b0000;">...</span>"):<span style="color: #0000ff;">String</span> {
	<span style="color: #0000ff;">if</span> (string.<span style="color: #0000ff;">length</span> &lt;= maxCharacters) {
		<span style="color: #0000ff;">return</span> string;
	}
	maxCharacters -= append.<span style="color: #0000ff;">length</span>;
	<span style="color: #008000;">// Complete word after blank space</span>
	<span style="color: #0000ff;">if</span> (string.substr(maxCharacters, 1) == "<span style="color: #8b0000;"> </span>") {
		<span style="color: #0000ff;">return</span> string.substr(0, maxCharacters) + append;
	}
	<span style="color: #008000;">// Incomplete word</span>
	string = string.substr(0, maxCharacters);
	<span style="color: #0000ff;">var</span> lastCharacter:<span style="color: #0000ff;">Number</span> = string.lastIndexOf("<span style="color: #8b0000;"> </span>");
	string = string.substr(0, lastCharacter) + append;
	<span style="color: #0000ff;">return</span> string;
}</pre>
<p>Se usaría así:</p>
<pre><span style="color: #0000ff">import</span> es.yporqueno.utils.StringUtils;

<span style="color: #0000ff">var</span> miTexto:<span style="color: #0000ff">String</span> = <span style="color: #8b0000">"Vero eros et accumsan et iusto odio dignissim qui blandit praesent"</span>;

<span style="color: #0000ff">trace</span>(shortenString(miTexto, 50));
<span style="color: #008000">// Vero eros et accumsan et iusto odio dignissim...</span>
</pre>
<p>Este tipo de funciones las voy a ir recopilando en una clase <em>StringUtils</em>.</p>
<ul>
<li><a href="http://www.yporqueno.es/clases/as3/es/yporqueno/utils/StringUtils.as" >Descargar StringUtils.as</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.yporqueno.es/blog/as3-acortar-frases/feed</wfw:commentRss>
		</item>
		<item>
		<title>AS3 - xml.getElementsByClass</title>
		<link>http://www.yporqueno.es/blog/as3-xmlgetelementsbyclass</link>
		<comments>http://www.yporqueno.es/blog/as3-xmlgetelementsbyclass#comments</comments>
		<pubDate>Tue, 27 Apr 2010 22:51:55 +0000</pubDate>
		<dc:creator>Iván Gajate</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Tutoriales]]></category>

		<category><![CDATA[buscar]]></category>

		<category><![CDATA[clase]]></category>

		<category><![CDATA[class]]></category>

		<category><![CDATA[decendants]]></category>

		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.yporqueno.es/blog/?p=1228</guid>
		<description><![CDATA[Y la compañera de getElementsByName y getElementById es esta.
Supongamos que tenemos un xml con varios nodos con la misma definición de clase:
&#60;div&#62;
	&#60;p class="parrafo"&#62;
		Esto es un párrafo
	&#60;/p&#62;
	&#60;form&#62;
		&#60;input type="checkbox" id="chk0"&#62;Leer&#60;/input&#62; &#60;br /&#62;
		&#60;input type="checkbox" id="chk1"&#62;Montar en bici&#60;/input&#62; &#60;br /&#62;
		&#60;input type="checkbox" id="chk2"&#62;Dormir&#60;/input&#62; &#60;br /&#62;
	&#60;/form&#62;
	&#60;p class="parrafo"&#62;
		Esto es otro párrafo diferente, pero con la misma clase
	&#60;/p&#62;
&#60;/div&#62;
Y queremos recuperarlos en forma de [...]]]></description>
			<content:encoded><![CDATA[<p>Y la compañera de <a href="http://www.yporqueno.es/blog/as3-xmlgetelementsbyname"  target="_blank">getElementsByName</a> y <a href="http://www.yporqueno.es/blog/as3-xmlgetelementbyid"  target="_blank">getElementById</a> es esta.</p>
<p>Supongamos que tenemos un xml con varios nodos con la misma definición de clase:</p>
<pre><span style="color: #0000ff">&lt;</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span>
	<span style="color: #0000ff">&lt;</span><span style="color: #800000">p</span> <span style="color: #ff0000">class</span>=<span style="color: #0000ff">"parrafo"</span><span style="color: #0000ff">&gt;</span>
		Esto es un párrafo
	<span style="color: #0000ff">&lt;/</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span>
	<span style="color: #0000ff">&lt;</span><span style="color: #800000">form</span><span style="color: #0000ff">&gt;</span>
		<span style="color: #0000ff">&lt;</span><span style="color: #800000">input</span> <span style="color: #ff0000">type</span>=<span style="color: #0000ff">"checkbox"</span> <span style="color: #ff0000">id</span>=<span style="color: #0000ff">"chk0"</span><span style="color: #0000ff">&gt;</span>Leer<span style="color: #0000ff">&lt;/</span><span style="color: #800000">input</span><span style="color: #0000ff">&gt;</span> <span style="color: #0000ff">&lt;</span><span style="color: #800000">br</span> <span style="color: #0000ff">/&gt;</span>
		<span style="color: #0000ff">&lt;</span><span style="color: #800000">input</span> <span style="color: #ff0000">type</span>=<span style="color: #0000ff">"checkbox"</span> <span style="color: #ff0000">id</span>=<span style="color: #0000ff">"chk1"</span><span style="color: #0000ff">&gt;</span>Montar en bici<span style="color: #0000ff">&lt;/</span><span style="color: #800000">input</span><span style="color: #0000ff">&gt;</span> <span style="color: #0000ff">&lt;</span><span style="color: #800000">br</span> <span style="color: #0000ff">/&gt;</span>
		<span style="color: #0000ff">&lt;</span><span style="color: #800000">input</span> <span style="color: #ff0000">type</span>=<span style="color: #0000ff">"checkbox"</span> <span style="color: #ff0000">id</span>=<span style="color: #0000ff">"chk2"</span><span style="color: #0000ff">&gt;</span>Dormir<span style="color: #0000ff">&lt;/</span><span style="color: #800000">input</span><span style="color: #0000ff">&gt;</span> <span style="color: #0000ff">&lt;</span><span style="color: #800000">br</span> <span style="color: #0000ff">/&gt;</span>
	<span style="color: #0000ff">&lt;/</span><span style="color: #800000">form</span><span style="color: #0000ff">&gt;</span>
	<span style="color: #0000ff">&lt;</span><span style="color: #800000">p</span> <span style="color: #ff0000">class</span>=<span style="color: #0000ff">"parrafo"</span><span style="color: #0000ff">&gt;</span>
		Esto es otro párrafo diferente, pero con la misma clase
	<span style="color: #0000ff">&lt;/</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span></pre>
<p>Y queremos recuperarlos en forma de XMLList:</p>
<pre><span style="color: #0000ff">function</span> getElementsByClass(data:XML, className:<span style="color: #0000ff">String</span>):XMLList{
	<span style="color: #0000ff">return</span> data.descendants().(hasOwnProperty("<span style="color: #8b0000">@class</span>") &amp;&amp; attribute("<span style="color: #8b0000">class</span>")==className);
}

<span style="color: #008000">// Se usaria asi:</span>
getElementsByClass(miXml, "<span style="color: #8b0000">parrafo</span>");</pre>
<p>Y devolvería esto:</p>
<pre><span style="color: #0000ff">&lt;</span><span style="color: #800000">p</span> <span style="color: #ff0000">class</span>=<span style="color: #0000ff">"parrafo"</span><span style="color: #0000ff">&gt;</span>Esto es un párrafo<span style="color: #0000ff">&lt;/</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;</span><span style="color: #800000">p</span> <span style="color: #ff0000">class</span>=<span style="color: #0000ff">"parrafo"</span><span style="color: #0000ff">&gt;</span>Esto es otro párrafo diferente, pero con la misma clase<span style="color: #0000ff">&lt;/</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span></pre>
<p>Este tipo de funciones las voy a ir recopilando en una clase <em>XmlUtils</em>.</p>
<ul>
<li><a href="http://www.yporqueno.es/clases/as3/es/yporqueno/utils/XmlUtils.as" >Descargar XmlUtils.as</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.yporqueno.es/blog/as3-xmlgetelementsbyclass/feed</wfw:commentRss>
		</item>
		<item>
		<title>AS3 - xml.getElementsByName</title>
		<link>http://www.yporqueno.es/blog/as3-xmlgetelementsbyname</link>
		<comments>http://www.yporqueno.es/blog/as3-xmlgetelementsbyname#comments</comments>
		<pubDate>Thu, 15 Apr 2010 19:37:48 +0000</pubDate>
		<dc:creator>Iván Gajate</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Tutoriales]]></category>

		<category><![CDATA[elemento]]></category>

		<category><![CDATA[getelementsbyname]]></category>

		<category><![CDATA[nodo]]></category>

		<category><![CDATA[nombre]]></category>

		<category><![CDATA[utils]]></category>

		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.yporqueno.es/blog/?p=1220</guid>
		<description><![CDATA[La parejita de getElementById  
Muy útil por ejemplo para obtener todos los checkBox de un xml:
&#60;div&#62;
	&#60;form id="aficiones"&#62;
		&#60;input type="checkbox" id="chk0" name="c0"&#62;Leer&#60;/input&#62; &#60;br /&#62;
		&#60;input type="checkbox" id="chk1" name="c1"&#62;Montar en bici&#60;/input&#62; &#60;br /&#62;
		&#60;input type="checkbox" id="chk2" name="c2"&#62;Dormir&#60;/input&#62; &#60;br /&#62;
	&#60;/form&#62;
&#60;/div&#62;
En este caso lo que nos interesa es un listado (XMLList) con todos los nodos del mismo tipo.
function getElementsByName(data:XML, name:String):XMLList{
	return data.descendants(name);
}

// [...]]]></description>
			<content:encoded><![CDATA[<p>La parejita de <a href="http://www.yporqueno.es/blog/as3-xmlgetelementbyid"  target="_blank">getElementById</a> <img src='http://www.yporqueno.es/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Muy útil por ejemplo para obtener todos los <em>checkBox</em> de un <em>xml</em>:</p>
<pre><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span>
	<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">form</span> <span style="color: #ff0000;">id</span>=<span style="color: #0000ff;">"aficiones"</span><span style="color: #0000ff;">&gt;</span>
		<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">input</span> <span style="color: #ff0000;">type</span>=<span style="color: #0000ff;">"checkbox"</span> <span style="color: #ff0000;">id</span>=<span style="color: #0000ff;">"chk0"</span> <span style="color: #ff0000;">name</span>=<span style="color: #0000ff;">"c0"</span><span style="color: #0000ff;">&gt;</span>Leer<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">input</span><span style="color: #0000ff;">&gt;</span> <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">br /</span><span style="color: #0000ff;">&gt;</span>
		<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">input</span> <span style="color: #ff0000;">type</span>=<span style="color: #0000ff;">"checkbox"</span> <span style="color: #ff0000;">id</span>=<span style="color: #0000ff;">"chk1"</span> <span style="color: #ff0000;">name</span>=<span style="color: #0000ff;">"c1"</span><span style="color: #0000ff;">&gt;</span>Montar en bici<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">input</span><span style="color: #0000ff;">&gt;</span> <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">br /</span><span style="color: #0000ff;">&gt;</span>
		<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">input</span> <span style="color: #ff0000;">type</span>=<span style="color: #0000ff;">"checkbox"</span> <span style="color: #ff0000;">id</span>=<span style="color: #0000ff;">"chk2"</span> <span style="color: #ff0000;">name</span>=<span style="color: #0000ff;">"c2"</span><span style="color: #0000ff;">&gt;</span>Dormir<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">input</span><span style="color: #0000ff;">&gt;</span> <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">br /</span><span style="color: #0000ff;">&gt;</span>
	<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">form</span><span style="color: #0000ff;">&gt;</span>
<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span></pre>
<p>En este caso lo que nos interesa es un listado (<strong>XMLList</strong>) con todos los nodos del mismo tipo.</p>
<pre><span style="color: #0000ff;">function</span> getElementsByName(data:XML, <span style="color: #0000ff;">name</span>:<span style="color: #0000ff;">String</span>):XMLList{
	<span style="color: #0000ff;">return</span> data.descendants(<span style="color: #0000ff;">name</span>);
}

<span style="color: #008000;">// Se usaria asi:</span>
<span style="color: #0000ff;">getElementsByName</span>(miXml, "<span style="color: #008000;">input</span>");</pre>
<p>Este tipo de funciones las voy a ir recopilando en una clase <em>XmlUtils</em>.</p>
<ul>
<li><a href="http://www.yporqueno.es/clases/as3/es/yporqueno/utils/XmlUtils.as"  target="_blank">Descargar XmlUtils.as</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.yporqueno.es/blog/as3-xmlgetelementsbyname/feed</wfw:commentRss>
		</item>
		<item>
		<title>AS3 - xml.getElementById</title>
		<link>http://www.yporqueno.es/blog/as3-xmlgetelementbyid</link>
		<comments>http://www.yporqueno.es/blog/as3-xmlgetelementbyid#comments</comments>
		<pubDate>Tue, 13 Apr 2010 19:05:30 +0000</pubDate>
		<dc:creator>Iván Gajate</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[buscar]]></category>

		<category><![CDATA[descendants]]></category>

		<category><![CDATA[e4x]]></category>

		<category><![CDATA[id]]></category>

		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.yporqueno.es/blog/?p=1216</guid>
		<description><![CDATA[Si tenemos un xml con etiquetas anidadas como esta:
&#60;contenedor&#62;
	&#60;caja&#62;
		&#60;item id="expediente1"&#62;
			Contenido del expediente 1
		&#60;/item&#62;
	&#60;/caja&#62;
	&#60;caja&#62;
		&#60;item id="expediente2"&#62;
			Contenido del expediente 2
		&#60;/item&#62;
	&#60;/caja&#62;
&#60;/contenedor&#62;
Y queremos acceder directamente al nodo &#60;item id=”expediente1”&#62; podemos hacerlo con esta línea de E4X:
miXml.descendants().(hasOwnProperty("@id") &#38;&#38; @id == "expediente1")[0]
Es fácil de entender, nos devolverá un XMList con todos los nodos que tengan el atributo “id”  y que id==”expediente1”. Y [...]]]></description>
			<content:encoded><![CDATA[<p>Si tenemos un <em>xml</em> con etiquetas anidadas como esta:</p>
<pre><span style="color: #0000ff">&lt;</span><span style="color: #800000">contenedor</span><span style="color: #0000ff">&gt;</span>
	<span style="color: #0000ff">&lt;</span><span style="color: #800000">caja</span><span style="color: #0000ff">&gt;</span>
		<span style="color: #0000ff">&lt;</span><span style="color: #800000">item</span> <span style="color: #ff0000">id</span>=<span style="color: #0000ff">"expediente1"</span><span style="color: #0000ff">&gt;</span>
			Contenido del expediente 1
		<span style="color: #0000ff">&lt;/</span><span style="color: #800000">item</span><span style="color: #0000ff">&gt;</span>
	<span style="color: #0000ff">&lt;/</span><span style="color: #800000">caja</span><span style="color: #0000ff">&gt;</span>
	<span style="color: #0000ff">&lt;</span><span style="color: #800000">caja</span><span style="color: #0000ff">&gt;</span>
		<span style="color: #0000ff">&lt;</span><span style="color: #800000">item</span> <span style="color: #ff0000">id</span>=<span style="color: #0000ff">"expediente2"</span><span style="color: #0000ff">&gt;</span>
			Contenido del expediente 2
		<span style="color: #0000ff">&lt;/</span><span style="color: #800000">item</span><span style="color: #0000ff">&gt;</span>
	<span style="color: #0000ff">&lt;/</span><span style="color: #800000">caja</span><span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;/</span><span style="color: #800000">contenedor</span><span style="color: #0000ff">&gt;</span></pre>
<p>Y queremos acceder directamente al nodo <em>&lt;item id=”expediente1”&gt;</em> podemos hacerlo con esta línea de <em>E4X</em>:</p>
<pre>miXml.descendants().(hasOwnProperty("<span style="color: #8b0000">@id</span>") &amp;&amp; @id == "<span style="color: #8b0000">expediente1</span>")[0]</pre>
<p>Es fácil de entender, nos devolverá un <em>XMList</em> con todos los nodos que tengan el atributo “<em>id</em>”  y que <em>id==”expediente1”</em>. Y de ese nos quedamos con el primero.</p>
<p>Podemos meterla en una función para que sea más cómoda de usar:</p>
<pre><span style="color: #0000ff">function</span> getElementById(data:XML, id:String):XML{
	<span style="color: #0000ff">return</span> data.descendants().(hasOwnProperty("<span style="color: #8b0000">@id</span>") &amp;&amp; @id==id)[0];
}

<span style="color: #008000">// Se usaria asi:</span>
getElementById(miXml, "<span style="color: #8b0000">expediente1</span>");</pre>
<p>La solución me la ha dado <a href="http://groups.google.es/group/asnativos/msg/7962bffbf20e829d" onclick="javascript:pageTracker._trackPageview('/outbound/article/groups.google.es');" target="_blank">Joseba en la lista de AsNativos</a>.</p>
<p>Este tipo de funciones las voy a ir recopilando en una clase XmlUtils.</p>
<ul>
<li><a href="http://www.yporqueno.es/clases/as3/es/yporqueno/utils/XmlUtils.as"  target="_blank">Descargar XmlUtils.as</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.yporqueno.es/blog/as3-xmlgetelementbyid/feed</wfw:commentRss>
		</item>
		<item>
		<title>Eclipse + Flex de 64 bits</title>
		<link>http://www.yporqueno.es/blog/eclipse-flex-64-bits</link>
		<comments>http://www.yporqueno.es/blog/eclipse-flex-64-bits#comments</comments>
		<pubDate>Thu, 18 Mar 2010 01:31:32 +0000</pubDate>
		<dc:creator>Iván Gajate</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Desarrollo Web]]></category>

		<category><![CDATA[adobe]]></category>

		<category><![CDATA[eclipse]]></category>

		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://www.yporqueno.es/blog/?p=1212</guid>
		<description><![CDATA[He instalado Windows 7 de 64 bits y claro, me ha tocado volver a instalar toooodos los programas que tenía. Y mi sorpresa ha sido que la mayoría de ellos sólo existen en su versión de 32 bits, a estas alturas de la vida.
Para instalar Eclipse+Plugin de Flex ya sabemos que hace falta, Java, Eclipse [...]]]></description>
			<content:encoded><![CDATA[<p>He instalado <em>Windows 7</em> de 64 bits y claro, me ha tocado volver a instalar toooodos los programas que tenía. Y mi sorpresa ha sido que la mayoría de ellos sólo existen en su versión de 32 bits, a estas alturas de la vida.</p>
<p>Para <a href="http://www.yporqueno.es/blog/instalar-eclipse-plugin-de-flex"  target="_blank">instalar Eclipse+Plugin de Flex</a> ya sabemos que hace falta, <em>Java</em>, <em>Eclipse</em> y el plúgin de <em>Flex</em>. Pues bien: <em>Java</em> existe para 32 y 64 bits, <em>Eclipse</em> también pero <em>Flex</em> sólo para 32, a día de hoy al menos.</p>
<p>Y encima la última versión de Flex (3.4) al parecer no se lleva bien con la última de Eclipse (la 3.5), así que la solución al final, tras hacer todas las pruebas posibles ha sido volver a mi instalación súper estable de Eclipse 3.4+Flex 3.2, todos ellos de 32 bits. Lo digo por si alguien se pelea a día de hoy con esto, para que no pierda tiempo <img src='http://www.yporqueno.es/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Lo único bueno, es que como es Java, ha bastado con pegar en C la carpeta de Eclipse que tenía de backUp, y ha funcionado todo tal cual, a la primera, atajos de teclado, plugins… Algo bueno tenía que tener no? ;D</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yporqueno.es/blog/eclipse-flex-64-bits/feed</wfw:commentRss>
		</item>
		<item>
		<title>Escribir tabulación en un campo de texto</title>
		<link>http://www.yporqueno.es/blog/escribir-tabulacion-en-un-campo-de-texto</link>
		<comments>http://www.yporqueno.es/blog/escribir-tabulacion-en-un-campo-de-texto#comments</comments>
		<pubDate>Thu, 18 Mar 2010 01:09:04 +0000</pubDate>
		<dc:creator>Iván Gajate</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Eventos]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Tutoriales]]></category>

		<category><![CDATA[campo de texto]]></category>

		<category><![CDATA[foco]]></category>

		<category><![CDATA[insertar]]></category>

		<category><![CDATA[preventdefault]]></category>

		<category><![CDATA[tab]]></category>

		<category><![CDATA[tabulacion]]></category>

		<category><![CDATA[textarea]]></category>

		<guid isPermaLink="false">http://www.yporqueno.es/blog/?p=1208</guid>
		<description><![CDATA[Si queremos insertar tabulaciones en un campo de texto o componente textArea de Flash, por defecto nos pasará el foco al siguiente campo de texto o botón.
Para evitar esto me ha dado la solución Ícaro Obregón en la lista de AsNativos, utilizando el método preventDefault() y luego haciendo un apaño para situar el cursor al [...]]]></description>
			<content:encoded><![CDATA[<p>Si queremos insertar tabulaciones en un campo de texto o componente <em>textArea</em> de Flash, por defecto nos pasará el foco al siguiente campo de texto o botón.</p>
<p>Para evitar esto me ha dado la solución <a href="http://groups.google.es/group/asnativos/msg/58ba5ec538e0596b" onclick="javascript:pageTracker._trackPageview('/outbound/article/groups.google.es');" target="_blank">Ícaro Obregón en la lista de AsNativos</a>, utilizando el método <a href="http://help.adobe.com/es_ES/AS3LCR/Flash_10.0/flash/events/Event.html#preventDefault()" onclick="javascript:pageTracker._trackPageview('/outbound/article/help.adobe.com');" target="_blank">preventDefault()</a> y luego haciendo un apaño para situar el cursor al final del texto, pues si no parecerá que no ha ocurrido nada.</p>
<pre>miCampoTexto.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, onFocusChange);

<span style="color: #0000ff">function</span> onFocusChange(event:FocusEvent):<span style="color: #0000ff">void</span> {
	event.preventDefault();

	miCampoTexto.appendText("<span style="color: #8b0000">\t</span>");
	miCampoTexto.setSelection(miCampoTexto.<span style="color: #0000ff">length</span>, miCampoTexto.<span style="color: #0000ff">length</span>);
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.yporqueno.es/blog/escribir-tabulacion-en-un-campo-de-texto/feed</wfw:commentRss>
		</item>
		<item>
		<title>Alzado.org</title>
		<link>http://www.yporqueno.es/blog/alzadoorg</link>
		<comments>http://www.yporqueno.es/blog/alzadoorg#comments</comments>
		<pubDate>Sat, 20 Feb 2010 02:41:05 +0000</pubDate>
		<dc:creator>Iván Gajate</dc:creator>
		
		<category><![CDATA[Desarrollo Web]]></category>

		<category><![CDATA[marketing]]></category>

		<guid isPermaLink="false">http://www.yporqueno.es/blog/?p=1202</guid>
		<description><![CDATA[Hoy he descubierto este sitio con unos artículos geniales, y muy bien tratados.
En el último describen perfectamente la problemática del desarrollo web en una empresa:
http://www.alzado.org/articulo.php?id_art=843
]]></description>
			<content:encoded><![CDATA[<p>Hoy he descubierto este sitio con unos artículos geniales, y muy bien tratados.</p>
<p>En el último describen perfectamente la problemática del desarrollo web en una empresa:</p>
<p><a href="http://www.alzado.org/articulo.php?id_art=843" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.alzado.org');">http://www.alzado.org/articulo.php?id_art=843</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yporqueno.es/blog/alzadoorg/feed</wfw:commentRss>
		</item>
		<item>
		<title>Cómo Pasar un Color de Hexadecimal a RGB</title>
		<link>http://www.yporqueno.es/blog/como-pasar-un-color-de-hexadecimal-a-rgb</link>
		<comments>http://www.yporqueno.es/blog/como-pasar-un-color-de-hexadecimal-a-rgb#comments</comments>
		<pubDate>Fri, 05 Feb 2010 00:04:10 +0000</pubDate>
		<dc:creator>Iván Gajate</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[color]]></category>

		<category><![CDATA[conversion]]></category>

		<category><![CDATA[hexadecimal]]></category>

		<category><![CDATA[rgp]]></category>

		<category><![CDATA[uint]]></category>

		<guid isPermaLink="false">http://www.yporqueno.es/blog/?p=1199</guid>
		<description><![CDATA[Esto siempre me lía mucho, así que lo tengo guardadito como oro en paño entre mis snippets. Lo comparto:
// 16711680 es el color rojo en hexadecimal
var colorHex:uint = 16711680;
var colorRGB:String = "0x" + colorHex.toString(16);  // 0xff0000
Y para hacer lo contrario:
// Rojo en RGB
var colorRBG:uint = 0xff0000;
var colorHex:uint = uint(colorRBG);  // 16711680
Atentos al tipado [...]]]></description>
			<content:encoded><![CDATA[<p>Esto siempre me lía mucho, así que lo tengo guardadito como oro en paño entre mis <em>snippets</em>. Lo comparto:</p>
<pre><span style="color: #008000">// 16711680 es el color rojo en hexadecimal</span>
<span style="color: #0000ff">var</span> colorHex:<span style="color: #0000ff">uint</span> = 16711680;
<span style="color: #0000ff">var</span> colorRGB:<span style="color: #0000ff">String</span> = "<span style="color: #8b0000">0x</span>" + colorHex.<span style="color: #0000ff">toString</span>(16);  <span style="color: #008000">// 0xff0000</span></pre>
<p>Y para hacer lo contrario:</p>
<pre><span style="color: #008000">// Rojo en RGB</span>
<span style="color: #0000ff">var</span> colorRBG:<span style="color: #0000ff">uint</span> = 0xff0000;
<span style="color: #0000ff">var</span> colorHex:<span style="color: #0000ff">uint</span> = <span style="color: #0000ff">uint</span>(colorRBG);  <span style="color: #008000">// 16711680</span></pre>
<p>Atentos al tipado de datos. El color en <em>rgb</em> es de tipo <em>uint</em>, no <em>String</em>. aunque parezca raro.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yporqueno.es/blog/como-pasar-un-color-de-hexadecimal-a-rgb/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
