<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2spanishfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Joan Llenas at Garnet Works :: Thoughts on software development</title>
	
	<link>http://joan.garnet.io</link>
	<description>Thoughts on software development</description>
	<lastBuildDate>Wed, 14 Nov 2012 10:39:04 +0000</lastBuildDate>
	<language>es-ES</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/joan_garnet_io" /><feedburner:info uri="joan_garnet_io" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://add.my.yahoo.com/content?lg=es&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fjoan_garnet_io" src="http://eur.i1.yimg.com/eur.yimg.com/i/es/my/addto1.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.feedness.com/alta/http://feeds.feedburner.com/joan_garnet_io" src="http://www.feedness.com/ayuda/wp-content/square_b_sh_feed.gif">Subscribe with Feedness</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjoan_garnet_io" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/joan_garnet_io" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjoan_garnet_io" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fjoan_garnet_io" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjoan_garnet_io" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjoan_garnet_io" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Fjoan_garnet_io" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Fjoan_garnet_io" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fjoan_garnet_io" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fjoan_garnet_io" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjoan_garnet_io" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjoan_garnet_io" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjoan_garnet_io" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Fjoan_garnet_io" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item>
		<title>Apache Flex SDK – installer, mavenizer</title>
		<link>http://feedproxy.google.com/~r/joan_garnet_io/~3/HKo6xzBbkrU/</link>
		<comments>http://joan.garnet.io/?p=1904#comments</comments>
		<pubDate>Wed, 14 Nov 2012 10:37:55 +0000</pubDate>
		<dc:creator>Joan Llenas</dc:creator>
				<category><![CDATA[Flex 4]]></category>

		<guid isPermaLink="false">http://joan.garnet.io/?p=1904</guid>
		<description><![CDATA[Tal y como dice en la web de Apache: &#8220;The Apache Flex SDK Installer is an application that simplifies the download and installation of the Apache Flex SDK and its (required) components. It is aimed at anyone who wants to use the latest release of the Apache Flex SDK, but who might not necessarily be [...]]]></description>
			<content:encoded><![CDATA[<p>Tal y como dice en la web de Apache: &#8220;The Apache Flex SDK Installer is an application that simplifies the download and installation of the Apache Flex SDK and its (required) components. It is aimed at anyone who wants to use the latest release of the Apache Flex SDK, but who might not necessarily be familiar with the tools and procedures required to compile the Apache Flex SDK from source code&#8221;.<br />
Apache Flex dispone de un instalador que configura e instala los elementos necesarios para poder crear aplicaciones Flex desde Flash Builder.<br />
Incluso se puede añadir un badge en tu web o blog!<br />
<a  href="http://incubator.apache.org/flex/installer.html"><img src="http://joan.garnet.io/wp-content/uploads/2012/11/flexSDKInstaller.png" alt="" title="flexSDKInstaller" width="313" height="312" class="alignnone size-full wp-image-1907" /></a></p>
<p>Y para los que quieran utilizar  Flex con un build de Maven se dipone de otra herramienta: &#8220;In order to be able to use Flex with a maven build, it is crucial to be able to have access to a mavenized form of FDK. The Apache Flex SDK Mavenizer tool is used to convert the Apache and Adobe Flex SDKs and Air SDKs into Maven artifacts. Automatically creating the Directories, pom-files, copying and moving the resources to the correct destinations.&#8221;<br />
<div class='et-box et-shadow'>
					<div class='et-box-content'>svn co https://svn.apache.org/repos/asf/incubator/flex/utilities/trunk/mavenizer/ mavenizer</div></div></p>
<p>Para más información podéis ir al sitio web de Apache Flex, que por cierto, pronto se va agraduar como proyecto Apache de forma oficial!<br />
<div class='et-box et-shadow'>
					<div class='et-box-content'><ul>
<li>Utilities: <a  href="http://incubator.apache.org/flex/utilities.html">http://incubator.apache.org/flex/utilities.html</a></li>
<li>Installer: <a  href="http://incubator.apache.org/flex/installer.html">http://incubator.apache.org/flex/installer.html</a></li>
</ul></div></div></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=HKo6xzBbkrU:dD-7OipyKCk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=HKo6xzBbkrU:dD-7OipyKCk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=HKo6xzBbkrU:dD-7OipyKCk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=HKo6xzBbkrU:dD-7OipyKCk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=HKo6xzBbkrU:dD-7OipyKCk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=HKo6xzBbkrU:dD-7OipyKCk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=HKo6xzBbkrU:dD-7OipyKCk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=HKo6xzBbkrU:dD-7OipyKCk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joan_garnet_io/~4/HKo6xzBbkrU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://joan.garnet.io/?feed=rss2&amp;p=1904</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://joan.garnet.io/?p=1904</feedburner:origLink></item>
		<item>
		<title>Teleport: diseñado para compartir</title>
		<link>http://feedproxy.google.com/~r/joan_garnet_io/~3/TXNXwCu_bB8/</link>
		<comments>http://joan.garnet.io/?p=1882#comments</comments>
		<pubDate>Sun, 21 Oct 2012 22:30:40 +0000</pubDate>
		<dc:creator>Joan Llenas</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://joan.garnet.io/?p=1882</guid>
		<description><![CDATA[ra tarde ya, una de esas noches invernales tan normales de principios de semana, un martes probablemente. El toque disonante lo dábamos un grupo de geeks saliendo de las torres Mapfre. Salíamos de un &#8220;9IT&#8221;. Habíamos sido convocados por Xavi Beumala para celebrar una nueva edición del evento &#8220;9IT&#8221;, unas reuniones clandestinas organizadas para compartir [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://joan.garnet.io/wp-content/uploads/2012/10/letter-e-e1350855671876.gif" alt="" title="E" width="72" height="87" class="alignleft size-full wp-image-1887" />ra tarde ya, una de esas noches invernales tan normales de principios de semana, un martes probablemente.<br />
El toque disonante lo dábamos un grupo de geeks saliendo de las torres Mapfre. Salíamos de un &#8220;9IT&#8221;. Habíamos sido convocados por Xavi Beumala para celebrar una nueva edición del evento &#8220;9IT&#8221;, unas reuniones clandestinas organizadas para compartir conocimientos entre colegas.</p>
<p>Saliendo de allí, tras despedirnos de todos invité a Raúl a llevarle a casa. No me venía de camino pero el tramo sería suficiente para poder comentar la jugada y también para actualizarnos en nuestros temas clásicos: series, pelis, tecnología, a dónde vamos, de dónde venimos, el pollo a la cerveza&#8230;.</p>
<p>Fue en ese trayecto cuando Raúl me habló por primera vez acerca de <a  href="http://www.indiegogo.com/teleport">Teleport</a>.<br />
- Teleport sería una aplicación para poder transferir archivos entre dispositivos vía peer-to-peer.</p>
<p><iframe src="http://player.vimeo.com/video/51630028" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<p><a  href="http://vimeo.com/51630028">Teleport &#8211; The best way to share content</a> from <a  href="http://vimeo.com/teleportio">Teleport Team</a> on <a  href="http://vimeo.com">Vimeo</a>.</p>
<p>Era un proyecto que quería para él mismo, en ese momento no había ninguna pretensión de crear un producto ni nada por el estilo, era un &#8220;proyecto mascota&#8221; que compartiría con su circulo de amigos para pasarse archivos y que, más que seguro, pasaría a ser material para dar una charla en alguno de los eventos tecnológicos de la temporada.</p>
<p>En aquél momento no le di demasiada importancia, fue en sucesivos encuentros posteriores que capté el potencial de la idea.<br />
- No se trata de inventar algo nuevo, se trata de tener una necesidad y darle una solución, aunque sea re-definiendo sutilezas en un sistema ya existente o juntando varios sub-sistemas para formar uno nuevo, con un sentido diferenciado.</p>
<p>A la gente le gusta compartir, esto es un hecho, lo que es sorprendente es la fragmentación en las formas de hacerlo y la dificultad que alberga el hacerlo.<br />
Teleport pretende democratizar la compartición de contenidos.<br />
Puedes creértelo o no, puedes contribuir o no, lo que seguro que vas a hacer es usarlo cuando esté disponiible.</p>
<p><iframe src="http://player.vimeo.com/video/51010861" width="500" height="375" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<p><a  href="http://vimeo.com/51010861">Teleport &#8211; User Interface Sneak Peek</a> from <a  href="http://vimeo.com/teleportio">Teleport Team</a> on <a  href="http://vimeo.com">Vimeo</a>.</p>
<p>Para ver en detalle qué es Teleport puedes acceder a la web de la campaña que hemos lanzado en indiegogo.com, donde estamos financiando el proyecto a través de las contribuciones de los usuarios que están interesados en ver el proyecto hecho una realidad.<br />
Otros proyectos han llegado a ver la luz gracias a esta forma de financiación, y lo han hecho pudiendo mantener al 100% su idea original, sin filtros, sin censuras.<br />
Ayúdanos a hacer Teleport una realidad adquiriendo alguno de los paquetes que hemos creado especialmente para la campaña.</p>
<p>Este es el ritual de iniciación para llegar a ser un <strong>Teleporter</strong>:</p>
<div class='et-box et-shadow'>
					<div class='et-box-content'><ol>
<li>Adquirir uno de los paquetes de Indiegogo: <a  href="http://www.indiegogo.com/teleport" target="_blank">http://www.indiegogo.com/teleport</a></li>
<li>Darse de alta en la newsletter desde nuestro sitio web: <a  href="http://www.teleport.io" target="_blank">http://www.teleport.io</a></li>
<li>Dejar un &#8220;Me gusta&#8221; en nuestra página de Facebook: <a  href="http://www.facebook.com/TeleportApp" target="_blank">http://www.facebook.com/TeleportApp</a></li>
<li>Dejar un &#8220;Me gusta&#8221; en alguno de nuestros videos en Viemo: <a  href="https://vimeo.com/teleportio" target="_blank">https://vimeo.com/teleportio</a></li>
<li>Seguirnos en Twitter: <a  href="https://twitter.com/teleport/" target="_blank">https://twitter.com/teleport/</a></li>
<li>Haznos saber que has completado todos los pasos a través de <strong>hello [arroba] teleport [punto] io</strong>. Algo haremos contigo! ;-)</li>
</ol></div></div>
<p>Gracias!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=TXNXwCu_bB8:MApfTsUdZ1c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=TXNXwCu_bB8:MApfTsUdZ1c:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=TXNXwCu_bB8:MApfTsUdZ1c:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=TXNXwCu_bB8:MApfTsUdZ1c:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=TXNXwCu_bB8:MApfTsUdZ1c:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=TXNXwCu_bB8:MApfTsUdZ1c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=TXNXwCu_bB8:MApfTsUdZ1c:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=TXNXwCu_bB8:MApfTsUdZ1c:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joan_garnet_io/~4/TXNXwCu_bB8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://joan.garnet.io/?feed=rss2&amp;p=1882</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://joan.garnet.io/?p=1882</feedburner:origLink></item>
		<item>
		<title>¡10 años de Subflash! – Taller videojuegos</title>
		<link>http://feedproxy.google.com/~r/joan_garnet_io/~3/PDo6Cuq9EnA/</link>
		<comments>http://joan.garnet.io/?p=1866#comments</comments>
		<pubDate>Thu, 05 Jul 2012 21:13:32 +0000</pubDate>
		<dc:creator>Joan Llenas</dc:creator>
				<category><![CDATA[Eventos Plataforma Flash]]></category>
		<category><![CDATA[Gaming]]></category>

		<guid isPermaLink="false">http://joan.garnet.io/?p=1866</guid>
		<description><![CDATA[Un año más, Subflash llega en punto a su cita veraniega y como cada año haré las maletas y me acercaré al paraje al que nos lleve. Este año, ni más ni menos que en la décima cita de éste entrañable evento, nos vamos a Vigo! Para no reescribir lo que ya he mencionado años [...]]]></description>
			<content:encoded><![CDATA[<p>Un año más, Subflash llega en punto a su cita veraniega y como cada año haré las maletas y me acercaré al paraje al que nos lleve.<br />
Este año, ni más ni menos que en la décima cita de éste entrañable evento, nos vamos a Vigo!<br />
Para no reescribir lo que ya he mencionado años pasados resumiré: <strong>¡No te lo pierdas!</strong></p>
<p><img src="http://joan.garnet.io/wp-content/uploads/2012/07/sbfl12_taller_videojuegos.jpg" alt="" title="sbfl12_taller_videojuegos" width="530" height="300" class="alignnone size-full wp-image-1867" /></p>
<p>Uno de los obvios atractivos de Subflash son sus talleres de programación, diseño, animación, etc&#8230; que tanto nos gustan a los geeks. Talleres de geeks, para geeks. Todo queda en casa :)<br />
Bueno, pues este año tengo la oportunidad de dar uno! (gracias Marcos por no aburrirte de mi) y este año me voy a salir un poco del guión y voy a derivar hacia el desarrollo de videojuegos, tema que me ha despertado el interés últimamente dada la gran exposición que los juegos tienen a través de dispositivos mobiles.<br />
La charla la enfocaré hacia el desarrollo de casual games, que un campo muy asequible para los que nos hemos dedicado durante años al desarrollo de aplicaciones visuales y a su vez tenemos interés por los videojuegos.</p>
<p>Dejo unos enlaces referentes al registro al evento y otros datos de interés:</p>
<div class='et-box et-shadow'>
					<div class='et-box-content'><ul>
<li><a  href="http://www.subflash.com/talleres/2012/" target="_blank">Microsite Subflash 2012</a></li>
<li><a  href="http://www.subflash.com/2012/06/primer-taller-confirmado-desarrollo-de-juegos-para-tods/">Anuncio del Taller de desarrollo de videojuegos</a></li>
<li><a  href="http://www.subflash.com/talleres/2012/#registration" target="_blank">Registro (las plazas son limitadas)</a></li>
<li><a  href="http://www.subflash.com/2012/02/subflash-2012/" target="_blank">Anuncio oficial en subflash.com</a></li>
<li><a  href="http://www.facebook.com/groups/subflash/" target="_blank">Grupo Subflash en facebook</a></li>
</ul></div></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=PDo6Cuq9EnA:80BEabtXBOM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=PDo6Cuq9EnA:80BEabtXBOM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=PDo6Cuq9EnA:80BEabtXBOM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=PDo6Cuq9EnA:80BEabtXBOM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=PDo6Cuq9EnA:80BEabtXBOM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=PDo6Cuq9EnA:80BEabtXBOM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=PDo6Cuq9EnA:80BEabtXBOM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=PDo6Cuq9EnA:80BEabtXBOM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joan_garnet_io/~4/PDo6Cuq9EnA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://joan.garnet.io/?feed=rss2&amp;p=1866</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://joan.garnet.io/?p=1866</feedburner:origLink></item>
		<item>
		<title>Apache Flex logo</title>
		<link>http://feedproxy.google.com/~r/joan_garnet_io/~3/vfYjPF17wFg/</link>
		<comments>http://joan.garnet.io/?p=1855#comments</comments>
		<pubDate>Thu, 09 Feb 2012 23:41:25 +0000</pubDate>
		<dc:creator>Joan Llenas</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://joan.garnet.io/?p=1855</guid>
		<description><![CDATA[Flex ya tiene un nuevo logo, escogido por la comunidad mediante voto. El logo está en diferentes formatos, de momento disponibles desde el JIRA issue al respecto.]]></description>
			<content:encoded><![CDATA[<p>Flex ya tiene un nuevo logo, escogido por la comunidad mediante voto.<br />
<a  href="https://issues.apache.org/jira/secure/attachment/12513950/apache_flex.jpg" class="thickbox no_icon" rel="gallery-1855" title=""><img src="http://joan.garnet.io/wp-content/uploads/2012/02/apache_flex-e1328830723640.jpg" alt="" title="apache flex logo" width="400" height="208" class="alignnone size-full wp-image-1857" /></a><br />
El logo está en diferentes formatos, de momento disponibles desde el <a  href="https://issues.apache.org/jira/browse/FLEX-11">JIRA issue al respecto</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=vfYjPF17wFg:_5MzKZEH5zY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=vfYjPF17wFg:_5MzKZEH5zY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=vfYjPF17wFg:_5MzKZEH5zY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=vfYjPF17wFg:_5MzKZEH5zY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=vfYjPF17wFg:_5MzKZEH5zY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=vfYjPF17wFg:_5MzKZEH5zY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=vfYjPF17wFg:_5MzKZEH5zY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=vfYjPF17wFg:_5MzKZEH5zY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joan_garnet_io/~4/vfYjPF17wFg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://joan.garnet.io/?feed=rss2&amp;p=1855</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://joan.garnet.io/?p=1855</feedburner:origLink></item>
		<item>
		<title>Información detallada acerca de Apache Flex</title>
		<link>http://feedproxy.google.com/~r/joan_garnet_io/~3/Sn6c6xcGv9U/</link>
		<comments>http://joan.garnet.io/?p=1847#comments</comments>
		<pubDate>Mon, 19 Dec 2011 13:35:20 +0000</pubDate>
		<dc:creator>Joan Llenas</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://joan.garnet.io/?p=1847</guid>
		<description><![CDATA[Un montón de cosas están pasando alrededor del anuncio de Adobe de donar Flex a la Apache Software Foundation. No voy a tratar de resumir el estado del proceso de transición, en cambio voy a apuntar a un enlace que resume muy bien todo lo sucedido los últimos días. Flex given to the Apache Software [...]]]></description>
			<content:encoded><![CDATA[<p>Un montón de cosas están pasando alrededor del anuncio de Adobe de donar Flex a la <a  href="http://www.apache.org/">Apache Software Foundation</a>.<br />
No voy a tratar de resumir el estado del proceso de transición, en cambio voy a apuntar a un enlace que resume muy bien todo lo sucedido los últimos días.</p>
<ul>
<li><a  href="http://www.flex-tutorial.fr/2011/12/17/flex-given-to-the-apache-software-foundation-round-up-and-opportunities/">Flex given to the Apache Software Foundation – round-up and opportunities</a></li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=Sn6c6xcGv9U:hB6DSRjXmFM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=Sn6c6xcGv9U:hB6DSRjXmFM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=Sn6c6xcGv9U:hB6DSRjXmFM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=Sn6c6xcGv9U:hB6DSRjXmFM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=Sn6c6xcGv9U:hB6DSRjXmFM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=Sn6c6xcGv9U:hB6DSRjXmFM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=Sn6c6xcGv9U:hB6DSRjXmFM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=Sn6c6xcGv9U:hB6DSRjXmFM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joan_garnet_io/~4/Sn6c6xcGv9U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://joan.garnet.io/?feed=rss2&amp;p=1847</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://joan.garnet.io/?p=1847</feedburner:origLink></item>
		<item>
		<title>Parsley Task Commands</title>
		<link>http://feedproxy.google.com/~r/joan_garnet_io/~3/f-4OLkBwTa4/</link>
		<comments>http://joan.garnet.io/?p=1833#comments</comments>
		<pubDate>Sun, 18 Dec 2011 17:17:35 +0000</pubDate>
		<dc:creator>Joan Llenas</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Parsley]]></category>

		<guid isPermaLink="false">http://joan.garnet.io/?p=1833</guid>
		<description><![CDATA[Parsley permite crear Commands que devuelven cualquier cosa. Por defecto se soporta void, AsyncToken y Task, siendo éste último tipo de datos el menos popular y desconocido. Provablemente porque no hay documentación al respecto, solo una mención de la posibilidad de hacerlo. A continuación una explicación y un pequeño ejemplo de cómo crear un DynamicCommand [...]]]></description>
			<content:encoded><![CDATA[<p><a  href="http://www.spicefactory.org/parsley/">Parsley</a> permite crear Commands que devuelven cualquier cosa. Por defecto se soporta <code>void</code>, <code>AsyncToken</code> y <code>Task</code>, siendo éste último tipo de datos el menos popular y desconocido. Provablemente porque no hay documentación al respecto, solo una mención de la posibilidad de hacerlo.<br />
A continuación una explicación y un pequeño ejemplo de cómo crear un <code>DynamicCommand</code> que devuelve y controla el transcurso de un <code>Task</code>.</p>
<p><strong>La primera clave</strong> para que la funcionalidad llegue a procesarse es inicializar el contexto con soporte de TaskCommands.</p>
<div class="igBar"><span id="lmxml-3"><a  href="#" onclick="javascript:showPlainTxt('mxml-3'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">MXML:</span>
<div id="mxml-3">
<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;"><span style="color: #7400FF;">&lt;fx:Declarations</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;parsley:ContextBuilder</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;parsley:TaskCommandSupport</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;parsley:FlexConfig</span> type=<span style="color: #ff0000;">"{ Context }"</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;/parsley:ContextBuilder</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;/fx:Declarations</span><span style="color: #7400FF;">&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>La segunda es obviamente crear un Command cuyo método <code>execute()</code> devuelva <code>Task</code>.<br />
Y la tercera que el método de retorno tenga el primer argumento de tipo <code>Task</code>, ya que ésto es lo que el procesador de TaskCommands devuelve.</p>
<div class="igBar"><span id="lactionscript-4"><a  href="#" onclick="javascript:showPlainTxt('actionscript-4'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-4">
<div class="actionscript">
<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;">package <span style="color: #66cc66;">&#123;</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: #0066CC;">import</span> org.<span style="color: #006600;">spicefactory</span>.<span style="color: #006600;">lib</span>.<span style="color: #006600;">task</span>.<span style="color: #006600;">Task</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: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MyTaskCommand</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: #66cc66;">&#123;</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: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> execute<span style="color: #66cc66;">&#40;</span>msg:MyMessage<span style="color: #66cc66;">&#41;</span>:Task</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: #66cc66;">&#123;</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; font-weight: bold;">var</span> myTask:Task = <span style="color: #000000; font-weight: bold;">new</span> MyTask<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</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: #b1b100;">return</span> myTask;</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: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&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; <span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> result<span style="color: #66cc66;">&#40;</span>tsk:Task, msg:MyTask<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</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: #66cc66;">&#123;</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: #66cc66;">&#125;</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: #66cc66;">&#125;</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;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>En el ejemplo que muestro a continuación se puede ver cómo implementar un <code>DynamicCommand</code> que realiza una operación de suma con un número indeterminado de operandos. La clave es utilizar un <code>SequentialTaskGroup</code> dentro de un Command que al completarse permite conocer el resultado gracias a la integración del Command con el <code>Task</code>.<br />
<center><a  href="http://joan.garnet.io/ejemplos/diciembre_2011/ParsleyTaskCommand/" title="Ver ejemplo"><img src="http://joan.garnet.io/wp-content/uploads/2011/12/sumTaskCommand.png" alt="" title="Sum Task Command" width="346" height="233" /></a></center></p>
<div class='et-box et-shadow'>
					<div class='et-box-content'><h2>Descarga ejemplo</h2>
<p>En el zip hay un proyecto Flex4 para Flash Builder.<br/>
<a  class="downloadlink" href="http://joan.garnet.io/wp-content/plugins/download-monitor/download.php?id=57" title=" downloaded 141 times">Parsley Task Commands (141) - 473.33 kB</a></p>
<hr />
<h2>Más info</h2>
<ul>
<li><a  href="http://www.spicefactory.org/parsley/docs/2.4/manual/">Manual Parsley (Punto 21 habla del Task Framework)</a></li>
<li><a  href="http://www.spicefactory.org/parsley/docs/2.4/api/parsley-flash/org/spicefactory/parsley/task/command/TaskCommandSupport.html" title="TaskCommandSupport">TaskCommandSupport</a></li>
<li><a  href="http://www.spicefactory.org/parsley/docs/3.0/manual/">Nueva implementación de Parsley (3.0) con Command en libraría aparte</a></li>
</ul></div></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=f-4OLkBwTa4:JadPmKv-74Y:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=f-4OLkBwTa4:JadPmKv-74Y:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=f-4OLkBwTa4:JadPmKv-74Y:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=f-4OLkBwTa4:JadPmKv-74Y:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=f-4OLkBwTa4:JadPmKv-74Y:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=f-4OLkBwTa4:JadPmKv-74Y:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=f-4OLkBwTa4:JadPmKv-74Y:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=f-4OLkBwTa4:JadPmKv-74Y:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joan_garnet_io/~4/f-4OLkBwTa4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://joan.garnet.io/?feed=rss2&amp;p=1833</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://joan.garnet.io/?p=1833</feedburner:origLink></item>
		<item>
		<title>Auto versionado de aplicaciones con Flash Builder</title>
		<link>http://feedproxy.google.com/~r/joan_garnet_io/~3/VMvwiXjmJDM/</link>
		<comments>http://joan.garnet.io/?p=1774#comments</comments>
		<pubDate>Fri, 02 Sep 2011 18:51:37 +0000</pubDate>
		<dc:creator>Joan Llenas</dc:creator>
				<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Flex Ant Tasks]]></category>

		<guid isPermaLink="false">http://joan.garnet.io/?p=1774</guid>
		<description><![CDATA[Flash Builder 4.X se distribuye integrado con Apache Ant, una herramienta para la automatización de procesos de compilación. Esto nos permite utilizar todo su potencial para crear todo tipo de runtinas que complementen o incluso sustituyan el build predeterminado que realiza Flash Builder. Ya seas desarrollador Flex o ActionScript es posible que le encuentres un [...]]]></description>
			<content:encoded><![CDATA[<p>Flash Builder 4.X se distribuye integrado con <a  href="http://ant.apache.org/">Apache Ant</a>, una herramienta para la automatización de procesos de compilación.<br />
Esto nos permite utilizar todo su potencial para crear todo tipo de runtinas que complementen o incluso sustituyan el build predeterminado que realiza Flash Builder.<br />
Ya seas desarrollador Flex o ActionScript es posible que le encuentres un uso a ANT, desde mover archivos al ser compilados, subirlos automáticamente al ftp o incluso añadir de forma automática un número de versión o fecha de compilación al swf resultante.<br />
En esta entrada mostraré precisamente esto, cómo crear un pequeño script ANT que automatize el versionado de una aplicación en cada compilación.</p>
<h2>El archivo de propiedades</h2>
<div class="igBar"><span id="lproperties-8"><a  href="#" onclick="javascript:showPlainTxt('properties-8'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">Properties:</span>
<div id="properties-8">
<div class="properties">
<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:#FF9933; font-style:italic;"># Ruta al jar de flexTasks, incluído al instalar Flash Builder</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">FLEX_TASKS=C:/Program Files <span style="color:#006600; font-weight:bold;">&#40;</span>x86<span style="color:#006600; font-weight:bold;">&#41;</span>/Adobe/Adobe Flash Builder <span style="color:#800000;color:#800000;">4</span>.<span style="color:#800000;color:#800000;">5</span>/sdks/<span style="color:#800000;color:#800000;">4</span>.<span style="color:#800000;color:#800000;">5</span>.<span style="color:#800000;color:#800000;">1</span>/ant/lib/flexTasks.<span style="">jar</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;"><span style="color:#FF9933; font-style:italic;"># Ruta al archivo que se utiliza como template para la clase Version</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;">VERSION_FILE_TEMPLATE=versionBuilderAssets/Version.<span style="">as</span>.<span style="">template</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&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:#FF9933; font-style:italic;"># Ruta al archivo de la clase Version real (se sobreescribe a cada compilacion)</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">VERSION_FILE_DESTINATION=src/io/joan/garnet/Version.<span style="">as</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;"><span style="color:#FF9933; font-style:italic;"># Parametros de version (modificar cuando se quiera cambiar de version)</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;">MAJOR=<span style="color:#800000;color:#800000;">0</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">MINOR=<span style="color:#800000;color:#800000;">1</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;">PATCH=<span style="color:#800000;color:#800000;">0</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&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:#FF9933; font-style:italic;"># El formato de fecha que se utiliza para generar el parametro build de la version</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">BUILD_TIME_FORMAT=yyyyMMddHHmm </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h2>La tarea Ant</h2>
<div class="igBar"><span id="lxml-9"><a  href="#" onclick="javascript:showPlainTxt('xml-9'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">XML:</span>
<div id="xml-9">
<div class="xml">
<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: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>?xml <span style="color: #000066;">version</span>=<span style="color: #ff0000;">"1.0"</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">"utf-8"</span>?<span style="font-weight: bold; color: black;">&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: #009900;"><span style="font-weight: bold; color: black;">&lt;project</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"Version Builder"</span> <span style="color: #000066;">basedir</span>=<span style="color: #ff0000;">"."</span> <span style="color: #000066;">default</span>=<span style="color: #ff0000;">"main"</span><span style="font-weight: bold; color: black;">&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: #009900;"><span style="font-weight: bold; color: black;">&lt;property</span> <span style="color: #000066;">file</span>=<span style="color: #ff0000;">"versionBuilderAssets/versionBuilder.properties"</span> <span style="font-weight: bold; color: black;">/&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: #009900;"><span style="font-weight: bold; color: black;">&lt;taskdef</span> <span style="color: #000066;">resource</span>=<span style="color: #ff0000;">"flexTasks.tasks"</span> <span style="color: #000066;">classpath</span>=<span style="color: #ff0000;">"${FLEX_TASKS}"</span> <span style="font-weight: bold; color: black;">/&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: #009900;"><span style="font-weight: bold; color: black;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"main"</span><span style="font-weight: bold; color: black;">&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: #009900;"><span style="font-weight: bold; color: black;">&lt;tstamp<span style="font-weight: bold; color: black;">&gt;</span></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: #009900;"><span style="font-weight: bold; color: black;">&lt;format</span> <span style="color: #000066;">property</span>=<span style="color: #ff0000;">"BUILD_TIME"</span> <span style="color: #000066;">pattern</span>=<span style="color: #ff0000;">"${BUILD_TIME_FORMAT}"</span> <span style="font-weight: bold; color: black;">/&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: #009900;"><span style="font-weight: bold; color: black;">&lt;/tstamp<span style="font-weight: bold; color: black;">&gt;</span></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: #009900;"><span style="font-weight: bold; color: black;">&lt;copy</span> <span style="color: #000066;">file</span>=<span style="color: #ff0000;">"${VERSION_FILE_TEMPLATE}"</span> <span style="color: #000066;">tofile</span>=<span style="color: #ff0000;">"${VERSION_FILE_DESTINATION}"</span> <span style="color: #000066;">overwrite</span>=<span style="color: #ff0000;">"true"</span> <span style="font-weight: bold; color: black;">/&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: #009900;"><span style="font-weight: bold; color: black;">&lt;replace</span> <span style="color: #000066;">file</span>=<span style="color: #ff0000;">"${VERSION_FILE_DESTINATION}"</span> <span style="color: #000066;">token</span>=<span style="color: #ff0000;">"@major@"</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">"${MAJOR}"</span> <span style="font-weight: bold; color: black;">/&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: #009900;"><span style="font-weight: bold; color: black;">&lt;replace</span> <span style="color: #000066;">file</span>=<span style="color: #ff0000;">"${VERSION_FILE_DESTINATION}"</span> <span style="color: #000066;">token</span>=<span style="color: #ff0000;">"@minor@"</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">"${MINOR}"</span> <span style="font-weight: bold; color: black;">/&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: #009900;"><span style="font-weight: bold; color: black;">&lt;replace</span> <span style="color: #000066;">file</span>=<span style="color: #ff0000;">"${VERSION_FILE_DESTINATION}"</span> <span style="color: #000066;">token</span>=<span style="color: #ff0000;">"@patch@"</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">"${PATCH}"</span> <span style="font-weight: bold; color: black;">/&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: #009900;"><span style="font-weight: bold; color: black;">&lt;replace</span> <span style="color: #000066;">file</span>=<span style="color: #ff0000;">"${VERSION_FILE_DESTINATION}"</span> <span style="color: #000066;">token</span>=<span style="color: #ff0000;">"@buildtime@"</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">"${BUILD_TIME}"</span> <span style="font-weight: bold; color: black;">/&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: #009900;"><span style="font-weight: bold; color: black;">&lt;echo</span> <span style="color: #000066;">message</span>=<span style="color: #ff0000;">"Build version number:${line.separator}Major: ${MAJOR}${line.separator}Minor: ${MINOR}${line.separator}Patch: ${PATCH}${line.separator}Build: ${BUILD_TIME}"</span><span style="font-weight: bold; color: black;">/&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: #009900;"><span style="font-weight: bold; color: black;">&lt;/target<span style="font-weight: bold; color: black;">&gt;</span></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: #009900;"><span style="font-weight: bold; color: black;">&lt;/project<span style="font-weight: bold; color: black;">&gt;</span></span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h2>El template del archivo de versión</h2>
<div class="igBar"><span id="lactionscript-10"><a  href="#" onclick="javascript:showPlainTxt('actionscript-10'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-10">
<div class="actionscript">
<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;">package io.<span style="color: #006600;">joan</span>.<span style="color: #006600;">garnet</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#123;</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: #0066CC;">import</span> mx.<span style="color: #006600;">utils</span>.<span style="color: #006600;">StringUtil</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&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: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> <span style="color: #0066CC;">Version</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: #66cc66;">&#123;</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: #0066CC;">public</span> <span style="color: #0066CC;">static</span> <span style="color: #000000; font-weight: bold;">var</span> MAJOR_VERSION:uint = @major@;</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: #0066CC;">public</span> <span style="color: #0066CC;">static</span> <span style="color: #000000; font-weight: bold;">var</span> MINOR_VERSION:uint = @minor@;</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: #0066CC;">public</span> <span style="color: #0066CC;">static</span> <span style="color: #000000; font-weight: bold;">var</span> PATCH:uint = @patch@;</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: #0066CC;">public</span> <span style="color: #0066CC;">static</span> <span style="color: #000000; font-weight: bold;">var</span> BUILD_TIME:<span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">"@buildtime@"</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; </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: #0066CC;">public</span> <span style="color: #0066CC;">static</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">toString</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">String</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: #66cc66;">&#123;</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: #b1b100;">return</span> StringUtil.<span style="color: #006600;">substitute</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"v{0}.{1}.{2} build.{3}"</span>, MAJOR_VERSION, MINOR_VERSION, PATCH, BUILD_TIME<span style="color: #66cc66;">&#41;</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: #66cc66;">&#125;</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: #66cc66;">&#125;</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;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h2>Enlazar la compilación con la tarea Ant</h2>
<p>Para que cada vez que compilamos se ejecute la tarea Ant antes de la compilación de Flex debemos agregar un nuevo <em>Builder</em> desde las propiedades del proyecto.<br />

<a  href="http://joan.garnet.io/?attachment_id=1794" title="builders"><img data-attachment-id="1794" data-orig-file="http://joan.garnet.io/wp-content/uploads/2011/09/builders.png" data-orig-size="622,427" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-description="" data-medium-file="http://joan.garnet.io/wp-content/uploads/2011/09/builders-300x205.png" data-large-file="http://joan.garnet.io/wp-content/uploads/2011/09/builders.png" width="150" height="150" src="http://joan.garnet.io/wp-content/uploads/2011/09/builders-150x150.png" class="attachment-thumbnail" alt="builders" title="builders" /></a>
<a  href="http://joan.garnet.io/?attachment_id=1795" title="builders2"><img data-attachment-id="1795" data-orig-file="http://joan.garnet.io/wp-content/uploads/2011/09/builders2.png" data-orig-size="704,714" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-description="" data-medium-file="http://joan.garnet.io/wp-content/uploads/2011/09/builders2-295x300.png" data-large-file="http://joan.garnet.io/wp-content/uploads/2011/09/builders2.png" width="150" height="150" src="http://joan.garnet.io/wp-content/uploads/2011/09/builders2-150x150.png" class="attachment-thumbnail" alt="builders2" title="builders2" /></a>
<a  href="http://joan.garnet.io/?attachment_id=1823" title="Ant Tasks"><img data-attachment-id="1823" data-orig-file="http://joan.garnet.io/wp-content/uploads/2011/09/apache_ant.png" data-orig-size="301,190" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-description="" data-medium-file="http://joan.garnet.io/wp-content/uploads/2011/09/apache_ant-300x189.png" data-large-file="http://joan.garnet.io/wp-content/uploads/2011/09/apache_ant.png" width="150" height="150" src="http://joan.garnet.io/wp-content/uploads/2011/09/apache_ant-150x150.png" class="attachment-thumbnail" alt="Ant Tasks" title="Ant Tasks" /></a>
</p>
<div class='et-box et-shadow'>
					<div class='et-box-content'><h2>Descarga ejemplo</h2>
<p>En el zip hay un proyecto Flex4 para Flash Builder.<br/>
<a  class="downloadlink" href="http://joan.garnet.io/wp-content/plugins/download-monitor/download.php?id=56" title="Version 1 downloaded 273 times">Auto Version Build (273) - 25.8 kB</a></p>
<hr />
<h2>Más info</h2>
<ul>
<li><a  href="http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf678b2-8000.html" title="Flex Ant Tasks">Flex Ant Tasks</a></li>
<li><a  href="http://www.adobe.com/devnet/flex/articles/flex_ant_pt1.html">Using Flex Ant Tasks to build Flex projects</a></li>
</ul></div></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=VMvwiXjmJDM:j-BogW-i5yE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=VMvwiXjmJDM:j-BogW-i5yE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=VMvwiXjmJDM:j-BogW-i5yE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=VMvwiXjmJDM:j-BogW-i5yE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=VMvwiXjmJDM:j-BogW-i5yE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=VMvwiXjmJDM:j-BogW-i5yE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=VMvwiXjmJDM:j-BogW-i5yE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=VMvwiXjmJDM:j-BogW-i5yE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joan_garnet_io/~4/VMvwiXjmJDM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://joan.garnet.io/?feed=rss2&amp;p=1774</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://joan.garnet.io/?p=1774</feedburner:origLink></item>
		<item>
		<title>Dibujando en un Chart component</title>
		<link>http://feedproxy.google.com/~r/joan_garnet_io/~3/H9sdLkxPrJ0/</link>
		<comments>http://joan.garnet.io/?p=1759#comments</comments>
		<pubDate>Fri, 03 Jun 2011 21:44:31 +0000</pubDate>
		<dc:creator>Joan Llenas</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[charting]]></category>

		<guid isPermaLink="false">http://joan.garnet.io/?p=1759</guid>
		<description><![CDATA[Los charting components de Flex vienen con un montón de funcionalidad implementada que cubre la mayor parte de las necesidades que se pueden tener de cara a crear visualizaciones. Además de eso si se indaga un poco más en profundidad en su arquitectura también veremos que disponemos de algunos hooks muy interesantes a la hora [...]]]></description>
			<content:encoded><![CDATA[<p>Los charting components de Flex vienen con un montón de funcionalidad implementada que cubre la mayor parte de las necesidades que se pueden tener de cara a crear visualizaciones. Además de eso si se indaga un poco más en profundidad en su arquitectura también veremos que disponemos de algunos <em>hooks</em> muy interesantes a la hora de cubrir necesidades un poco más extravagantes fuera de lo que está implementado.</p>
<p>Concretamente estoy hablando de los <code>backgroundElements</code> y los <code>annotationElements</code>:</p>
<div class="igBar"><span id="lxml-12"><a  href="#" onclick="javascript:showPlainTxt('xml-12'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">XML:</span>
<div id="xml-12">
<div class="xml">
<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: #009900;"><span style="font-weight: bold; color: black;">&lt;mx</span>:AreaChart<span style="font-weight: bold; color: black;">&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: #009900;"><span style="font-weight: bold; color: black;">&lt;mx</span>:backgroundElements <span style="font-weight: bold; color: black;">/&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: #009900;"><span style="font-weight: bold; color: black;">&lt;mx</span>:series <span style="font-weight: bold; color: black;">/&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: #009900;"><span style="font-weight: bold; color: black;">&lt;mx</span>:annotationElements <span style="font-weight: bold; color: black;">/&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;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/mx</span>:AreaChart<span style="font-weight: bold; color: black;">&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
En el código anterior podemos apreciar que el componente expone las dos propiedades, que son de tipo Array y aceptan cualquier subclase de <code>ChartElement</code>.</p>
<p>A la hora de implementar algo que funcione en el contexto de una determinada visualización debemos tener en cuenta que al posicionar los elementos vamos a necesitar hacer conversiones entre dimensiones espaciales. Esto es, nosotros solo entendemos valores absolutos para 'x' e 'y', en cambio la visualización trabaja con otro tipo de valores, ya sean numéricos, fechas, nombres, etc..<br />
En este punto es cuando damos gracias por encontrar un par de joyas incluídas en el charting framework en lo que se refiere a abstraernos de dichas conversiones. Concretamente hablo de las clases <code>CartesianDataCanvas</code> y <code>PolarDataCanvas</code>.</p>
<p>Ambas clases sirven para lo mismo. Son un lienzo en blanco sobre el cuál nosotros podemos dibujar sin tener que preocuparnos de realizar la dura tarea de transformar coordenadas.<br />
La diferencia principal entre las dos es que <code>CartesianDataCanvas</code> se utiliza para charting components que utilizan <a  href="http://es.wikipedia.org/wiki/Sistema_de_coordenadas#Sistema_de_coordenadas_cartesianas">coordendas cartesianas</a> (LineChart, BarChart, ColumnChart...) y <code>PolarDataCanvas</code> para charting components que utilizan <a  href="http://es.wikipedia.org/wiki/Sistema_de_coordenadas#Sistema_de_coordenadas_polares">coordenadas polares</a> (PieChart).</p>
<p>Un ejemplo de utilización de la versión cartesiana:<br />
<a  href="http://joan.garnet.io/ejemplos/junio_2011/drawingCharts/index.html" alt="Clica para ver el ejemplo" title="Clica para ver el ejemplo"><img src="http://joan.garnet.io/wp-content/uploads/2011/06/drawingCharts.png" alt="" title="Drawing Charts" width="415" height="315" class="alignnone size-full wp-image-1761" /></a></p>
<p>La clave para conseguir esto es la clase <code>CartesianDataCanvas</code> y la utilización de su método <code>addDataChild()</code>, que permite añadir un elementos en una posición parametrizada con valores del mismo tipo que los que disponemos en los data points.</p>
<h2>Descarga ejemplo</h2>
<p>En el zip hay un proyecto Flex4.5 para Flash Builder.</p>
<div class="download">
<a  class="downloadlink" href="http://joan.garnet.io/wp-content/plugins/download-monitor/download.php?id=55" title="Version 1 downloaded 288 times">Drawing whithin charts (288) - 1.56 MB</a><br />
zip
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=H9sdLkxPrJ0:fUyp5NkikNU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=H9sdLkxPrJ0:fUyp5NkikNU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=H9sdLkxPrJ0:fUyp5NkikNU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=H9sdLkxPrJ0:fUyp5NkikNU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=H9sdLkxPrJ0:fUyp5NkikNU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=H9sdLkxPrJ0:fUyp5NkikNU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=H9sdLkxPrJ0:fUyp5NkikNU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=H9sdLkxPrJ0:fUyp5NkikNU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joan_garnet_io/~4/H9sdLkxPrJ0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://joan.garnet.io/?feed=rss2&amp;p=1759</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://joan.garnet.io/?p=1759</feedburner:origLink></item>
		<item>
		<title>Sticky Selection DataGrid (múltiple sin CTRL)</title>
		<link>http://feedproxy.google.com/~r/joan_garnet_io/~3/mTxRhN78to8/</link>
		<comments>http://joan.garnet.io/?p=1748#comments</comments>
		<pubDate>Wed, 06 Apr 2011 15:50:30 +0000</pubDate>
		<dc:creator>Joan Llenas</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[datagrid]]></category>
		<category><![CDATA[multipleselection]]></category>

		<guid isPermaLink="false">http://joan.garnet.io/?p=1748</guid>
		<description><![CDATA[Tener que selecciona múltiples filas en un DatGrid presionando CTRL es algo que muchos usuarios pueden encontrar complicado. En estos casos una solución es habilitar un tipo de interacción en el que usuario solo tenga que clicar a las filas como si de ComboBox se trataran: un click selecciono, otro click deselecciono. Fácil y usable. [...]]]></description>
			<content:encoded><![CDATA[<p>Tener que selecciona múltiples filas en un DatGrid presionando CTRL es algo que muchos usuarios pueden encontrar complicado. En estos casos una solución es habilitar un tipo de interacción en el que usuario solo tenga que clicar a las filas como si de ComboBox se trataran: un click selecciono, otro click deselecciono. Fácil y usable.<br />
Para Flex4 es realmente sencillo conseguir este efecto, solo se tiene que sobreescribir un método.</p>
<div class="igBar"><span id="lactionscript-15"><a  href="#" onclick="javascript:showPlainTxt('actionscript-15'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-15">
<div class="actionscript">
<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;">package io.<span style="color: #006600;">garnet</span>.<span style="color: #006600;">joan</span>.<span style="color: #006600;">controls</span>.<span style="color: #006600;">datagrid</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#123;</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: #0066CC;">import</span> mx.<span style="color: #006600;">controls</span>.<span style="color: #006600;">DataGrid</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: #0066CC;">import</span> mx.<span style="color: #006600;">controls</span>.<span style="color: #006600;">listClasses</span>.<span style="color: #006600;">IListItemRenderer</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: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> DataGridStickySelection <span style="color: #0066CC;">extends</span> DataGrid</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: #66cc66;">&#123;</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; override protected <span style="color: #000000; font-weight: bold;">function</span> selectItem<span style="color: #66cc66;">&#40;</span>item:IListItemRenderer, shiftKey:<span style="color: #0066CC;">Boolean</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; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; ctrlKey:<span style="color: #0066CC;">Boolean</span>, transition:<span style="color: #0066CC;">Boolean</span> = <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Boolean</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: #66cc66;">&#123;</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: #b1b100;">return</span> <span style="color: #0066CC;">super</span>.<span style="color: #006600;">selectItem</span><span style="color: #66cc66;">&#40;</span>item, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #000000; font-weight: bold;">true</span>, transition<span style="color: #66cc66;">&#41;</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: #66cc66;">&#125;</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: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Luego no podemos olvidar setear el valor allowMultipleSeleciont a true en la declaración:</p>
<div class="igBar"><span id="lactionscript-16"><a  href="#" onclick="javascript:showPlainTxt('actionscript-16'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-16">
<div class="actionscript">
<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;">&lt;datagrid:datagridstickyselection <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">"100%"</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">"100%"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; allowMultipleSelection=<span style="color: #ff0000;">"true"</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; dataProvider=<span style="color: #ff0000;">"{ model.dataProvider }"</span>&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;!-- <span style="color: #66cc66;">&#40;</span>...<span style="color: #66cc66;">&#41;</span> --&gt;</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;">&lt;/datagrid:datagridstickyselection&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><a  href="http://joan.garnet.io/ejemplos/abril_2011/stickySelectionDataGrid/index.html">Un ejemplo</a> (click derecho: view source)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=mTxRhN78to8:lSsnGYgRp0c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=mTxRhN78to8:lSsnGYgRp0c:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=mTxRhN78to8:lSsnGYgRp0c:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=mTxRhN78to8:lSsnGYgRp0c:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=mTxRhN78to8:lSsnGYgRp0c:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=mTxRhN78to8:lSsnGYgRp0c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=mTxRhN78to8:lSsnGYgRp0c:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=mTxRhN78to8:lSsnGYgRp0c:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joan_garnet_io/~4/mTxRhN78to8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://joan.garnet.io/?feed=rss2&amp;p=1748</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://joan.garnet.io/?p=1748</feedburner:origLink></item>
		<item>
		<title>Embed de fuentes *.dfont y *.ttc con Flex4</title>
		<link>http://feedproxy.google.com/~r/joan_garnet_io/~3/lmjlh0SXAnY/</link>
		<comments>http://joan.garnet.io/?p=1723#comments</comments>
		<pubDate>Tue, 08 Mar 2011 17:19:09 +0000</pubDate>
		<dc:creator>Joan Llenas</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[dfont]]></category>
		<category><![CDATA[embed]]></category>
		<category><![CDATA[flex4]]></category>

		<guid isPermaLink="false">http://joan.garnet.io/?p=1723</guid>
		<description><![CDATA[Normalmente incrustamos fuentes en formato independiente *.ttf y *.otf pero si se da la necesidad también podemos incrustar fuentes en formato contenedor *.dfont o *.ttc. Mediante CSS es posible hacerlo de la siguiente forma: PLAIN TEXT CSS: @font-face { &#160; &#160; src: url&#40;"Helvetica.dfont"&#41;; &#160; &#160; fontFamily: "Helvetica Regular"; &#160; &#160; fontStyle: normal; &#160; &#160; fontWeight: [...]]]></description>
			<content:encoded><![CDATA[<p>Normalmente incrustamos fuentes en formato independiente <strong>*.ttf</strong> y <strong>*.otf</strong> pero si se da la necesidad también podemos incrustar fuentes en formato contenedor <strong>*.dfont</strong> o <strong>*.ttc</strong>.<br />
Mediante CSS es posible hacerlo de la siguiente forma:</p>
<div class="igBar"><span id="lcss-19"><a  href="#" onclick="javascript:showPlainTxt('css-19'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CSS:</span>
<div id="css-19">
<div class="css">
<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: #a1a100;">@font-face {</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; src: <span style="color: #993333;">url</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"Helvetica.dfont"</span><span style="color: #66cc66;">&#41;</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; fontFamily: <span style="color: #ff0000;">"Helvetica Regular"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; fontStyle: <span style="color: #993333;">normal</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; fontWeight: <span style="color: #993333;">normal</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; embed-as-cff: 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;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #a1a100;">@font-face {</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; src: <span style="color: #993333;">url</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"Helvetica.dfont"</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; fontFamily: <span style="color: #ff0000;">"Helvetica Bold"</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; fontStyle: <span style="color: #993333;">normal</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; fontWeight: <span style="color: #993333;">bold</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; embed-as-cff: true;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><img src="http://joan.garnet.io/wp-content/uploads/2011/03/dfont_helvetica-300x206.png" alt="" title="dfont helvetica" width="300" height="206" class="alignleft size-medium wp-image-1725" />El procedimiento es el mismo que cuando embebemos una fuente *.ttf pero hay una punto a tener en cuenta, el atributo <code>fontFamily</code> debe ser exactamente el mismo que el nombre de la fuente incluyendo el estilo al que pertenece, es decir Bold, Oblique, Light, Regular, etc...</p>
<p>En el visor de fuentes de sistema se puede obtener esa información, por ejemplo en OSX se ve como en la imagen de la izquierda.<br />
Por supuesto cualquier otro atributo que utilizado con fuentes individuales se puede utilizar para fuentes en formato contenedor, al fin y al cabo el compilador de Flex lo único que hace es extraer del contenedor las fuentes individuales que se utilizan y las incrusta en el bytecode del archivo swf.<br />
Para utilizar la tipografía en otras declaraciones CSS se opera como con cualquier otra fuente individual:</p>
<div class="igBar"><span id="lcss-20"><a  href="#" onclick="javascript:showPlainTxt('css-20'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CSS:</span>
<div id="css-20">
<div class="css">
<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: #a1a100;">@font-face {</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; src: <span style="color: #993333;">url</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"Helvetica.dfont"</span><span style="color: #66cc66;">&#41;</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; fontFamily: <span style="color: #ff0000;">"Helvetica Bold"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; fontStyle: <span style="color: #993333;">normal</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; fontWeight: <span style="color: #993333;">bold</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; embed-as-cff: 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;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">s|Button<span style="color: #66cc66;">&#123;</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; font-weight: bold;">font-family</span>: <span style="color: #ff0000;">"Helvetica Bold"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Dejo un ejemplo de uso para la fuente Helvetica completa empaquetada como <strong>*.dfont</strong>:</p>
<h2>Descarga ejemplo</h2>
<p>En el zip hay un proyecto Flex4 para Flash Builder.</p>
<div class="download">
<a  class="downloadlink" href="http://joan.garnet.io/wp-content/plugins/download-monitor/download.php?id=54" title="Version 1 downloaded 363 times">Embed de fuentes formato *.dfont (363) - 774.32 kB</a><br />
zip
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=lmjlh0SXAnY:F1TCsB2ALMs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=lmjlh0SXAnY:F1TCsB2ALMs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=lmjlh0SXAnY:F1TCsB2ALMs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=lmjlh0SXAnY:F1TCsB2ALMs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=lmjlh0SXAnY:F1TCsB2ALMs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=lmjlh0SXAnY:F1TCsB2ALMs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?i=lmjlh0SXAnY:F1TCsB2ALMs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joan_garnet_io?a=lmjlh0SXAnY:F1TCsB2ALMs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joan_garnet_io?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joan_garnet_io/~4/lmjlh0SXAnY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://joan.garnet.io/?feed=rss2&amp;p=1723</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://joan.garnet.io/?p=1723</feedburner:origLink></item>
	</channel>
</rss>
