<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.1.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>chblog</title>
	<link>http://www.cristianhernandez.org/blog</link>
	<description>Blog personal de Cristian Hernandez</description>
	<pubDate>Wed, 03 Oct 2007 02:46:10 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.1.2</generator>
	<language>en</language>
			<item>
		<title>Flash Player 10</title>
		<link>http://www.cristianhernandez.org/blog/?p=92</link>
		<comments>http://www.cristianhernandez.org/blog/?p=92#comments</comments>
		<pubDate>Wed, 03 Oct 2007 02:46:10 +0000</pubDate>
		<dc:creator>Cristian Hernández</dc:creator>
		
		<category><![CDATA[Adobe]]></category>

		<guid isPermaLink="false">http://www.cristianhernandez.org/blog/?p=92</guid>
		<description><![CDATA[Así es, se viene Flash Player 10, su nombre clave es ASTRO, aqui un video de presentación:




Via: Aral Balkan
]]></description>
			<content:encoded><![CDATA[<p>Así es, se viene Flash Player 10, su nombre clave es ASTRO, aqui un video de presentación:</p>
<object width="425" height="350">
<param name="movie" value="http://www.youtube.com/v/ympeCv8lLmw"></param>
<param name="wmode" value="transparent"></param>
<p><embed src="http://www.youtube.com/v/ympeCv8lLmw" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object>
<p>Via: <a href="http://aralbalkan.com/1048">Aral Balkan</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cristianhernandez.org/blog/?feed=rss2&amp;p=92</wfw:commentRss>
		</item>
		<item>
		<title>Update para Flash CS3, Adobe AIR</title>
		<link>http://www.cristianhernandez.org/blog/?p=91</link>
		<comments>http://www.cristianhernandez.org/blog/?p=91#comments</comments>
		<pubDate>Fri, 31 Aug 2007 11:20:18 +0000</pubDate>
		<dc:creator>Cristian Hernández</dc:creator>
		
		<category><![CDATA[Actionscript]]></category>

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

		<guid isPermaLink="false">http://www.cristianhernandez.org/blog/?p=91</guid>
		<description><![CDATA[En Adobe Labs está disponible un update para Flash CS3 Professional. Este permite publicar nuestras aplicaciones directamente a  Adobe AIR (Apollo). Es beta aun pero vale la pena probarla  
Link: AIR:Flash CS3 Professional Update
]]></description>
			<content:encoded><![CDATA[<p>En <a href="http://labs.adobe.com/wiki/index.php">Adobe Labs</a> está disponible un update para Flash CS3 Professional. Este permite publicar nuestras aplicaciones directamente a  Adobe AIR (Apollo). Es beta aun pero vale la pena probarla <img src='http://www.cristianhernandez.org/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Link: <a href="http://labs.adobe.com/wiki/index.php/AIR:Flash_CS3_Professional_Update">AIR:Flash CS3 Professional Update</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cristianhernandez.org/blog/?feed=rss2&amp;p=91</wfw:commentRss>
		</item>
		<item>
		<title>Variables globales en Actionscript 3</title>
		<link>http://www.cristianhernandez.org/blog/?p=88</link>
		<comments>http://www.cristianhernandez.org/blog/?p=88#comments</comments>
		<pubDate>Wed, 04 Jul 2007 03:48:59 +0000</pubDate>
		<dc:creator>Cristian Hernández</dc:creator>
		
		<category><![CDATA[Actionscript 3]]></category>

		<guid isPermaLink="false">http://www.cristianhernandez.org/blog/?p=88</guid>
		<description><![CDATA[Actionscript 3, no tiene un acceso tan claro a _root como las versiones anteriores, y _global fue removido (por suerte), por lo tanto se puede llegar a complicar el uso de variables "globales", en realidad no era una buena práctica, pero era una opcion viable hacer esto:
_root.user = "nombre de usuario";
_root.userType = "admin";
o lo siguente:
_global.user [...]]]></description>
			<content:encoded><![CDATA[<p>Actionscript 3, no tiene un acceso tan claro a _root como las versiones anteriores, y _global fue removido (por suerte), por lo tanto se puede llegar a complicar el uso de variables "globales", en realidad no era una buena práctica, pero era una opcion viable hacer esto:</p>
<div class="codesnip-container" >_root.user = "nombre de usuario";<br />
_root.userType = "admin";</div>
<p>o lo siguente:</p>
<div class="codesnip-container" >_global.user = "nombre de usuario";<br />
_global.userType = "admin";</div>
<p>Repito, no es la mejor opción pero era una salida.<br />
La mejor opción para esto, en Actionscript 3, es utilizar el <a href="http://en.wikipedia.org/wiki/Design_Patterns">patrón de diseño</a> <a href="http://en.wikipedia.org/wiki/Singleton_pattern">Singleton</a>, utilizando una class como la siguiente:</p>
<div class="codesnip-container" >
<div class="codesnip">package<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>Bindable<span class="br0">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">class</span> GlobalVars <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// public vars:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">var</span> user:<span class="kw3">String</span> =&nbsp; <span class="st0">"nombre de usuario"</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">var</span> userType:<span class="kw3">String</span> = <span class="st0">"admin"</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// private vars</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw3">static</span> <span class="kw2">var</span> instance:GlobalVars;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> GlobalVars<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw3">static</span> <span class="kw2">function</span> getInstance<span class="br0">&#40;</span><span class="br0">&#41;</span>:GlobalVars <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>instance == <span class="kw3">undefined</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; instance =<span class="kw2">new</span> GlobalVars<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> instance;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>Esta class no <strong>se debe instanciar</strong> dentro de ella está contenida la única instancia, y es pedida con el método getInstance(), así aseguramos la persistencia de las variables dentro de esta misma instancia.<br />
Con esto desde cualquier class de nuestro proyecto, o bien desde algún fotograma del archivo fla podemos utilizar o modificar estas variables de la siguiente forma:</p>
<div class="codesnip-container" >trace(GlobalVars.getInstance().user)// nombre de usuario;<br />
GlobalVars.getInstance().user = "soy el nuevo usuario"</div>
<p>En otra class:</p>
<div class="codesnip-container" >trace(GlobalVars.getInstance().user)// soy el nuevo usuario;</div>
<p>Con esto tendremos variables globales en forma en forma ordenada, porque todas estarán declaradas en nuestra class, además podemos tener más de una class de estas, para almacenar distinto tipos de datos.<br />
Esto sería como una mezcla de los Value Objects y los Model Locators en el <a href="http://labs.adobe.com/wiki/index.php/Cairngorm">Framework Cairngorm</a>, solo que más simplificado para ser utilizado más facillmente.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cristianhernandez.org/blog/?feed=rss2&amp;p=88</wfw:commentRss>
		</item>
		<item>
		<title>Más de Flash CS3</title>
		<link>http://www.cristianhernandez.org/blog/?p=87</link>
		<comments>http://www.cristianhernandez.org/blog/?p=87#comments</comments>
		<pubDate>Tue, 03 Jul 2007 22:09:01 +0000</pubDate>
		<dc:creator>Cristian Hernández</dc:creator>
		
		<category><![CDATA[Actionscript 3]]></category>

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

		<guid isPermaLink="false">http://www.cristianhernandez.org/blog/?p=87</guid>
		<description><![CDATA[Mi post anterior sonó medio "apocalíptico" sobre diseñadores y actionscript.. pero por lo que estuve viendo de Flash CS3 tiene una ventaja, haciendo dobleclick sobre cualquier instancia de componente de Flash en en escenario aparece algo parecido a esto:


Ahi vemos todos las partes del skin del componente para poder ser editado fácilmente... sin tanto código [...]]]></description>
			<content:encoded><![CDATA[<p>Mi post anterior sonó medio "apocalíptico" sobre diseñadores y actionscript.. pero por lo que estuve viendo de Flash CS3 tiene una ventaja, haciendo dobleclick sobre cualquier instancia de componente de Flash en en escenario aparece algo parecido a esto:<br />
<img src="http://www.cristianhernandez.org/blog/wp-content/uploads/2007/07/comp_editor.jpg" alt="Editar Componente" /><br />
<br />
Ahi vemos todos las partes del skin del componente para poder ser editado fácilmente... sin tanto código para cambiarlo de colores. Ningún secreto pero es buenisimo..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cristianhernandez.org/blog/?feed=rss2&amp;p=87</wfw:commentRss>
		</item>
		<item>
		<title>Flash CS3 ¿Como convivimos?</title>
		<link>http://www.cristianhernandez.org/blog/?p=85</link>
		<comments>http://www.cristianhernandez.org/blog/?p=85#comments</comments>
		<pubDate>Fri, 22 Jun 2007 00:59:23 +0000</pubDate>
		<dc:creator>Cristian Hernández</dc:creator>
		
		<category><![CDATA[Actionscript 3]]></category>

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

		<guid isPermaLink="false">http://www.cristianhernandez.org/blog/?p=85</guid>
		<description><![CDATA[Como ya todos saben Adobe ha sacado la nueva version de Flash, CS3 (el resto de los programas de adobe también están incluidos en esta version).
La principal novedad que rescato es de Actionscript 3. Tiene mejoras excelentes, y cosas nuevas que empecé a utilizar en Flex 2 y aun descubriendo para Flash.
Lo que veo un [...]]]></description>
			<content:encoded><![CDATA[<p>Como ya todos saben Adobe ha sacado la nueva version de <a href="http://www.adobe.com/es/products/flash/">Flash, CS3 </a>(el resto de los programas de adobe también están incluidos en esta version).<br />
La principal novedad que rescato es de Actionscript 3. Tiene mejoras excelentes, y cosas nuevas que empecé a utilizar en Flex 2 y aun descubriendo para Flash.<br />
Lo que veo un poco complicado esa la convivencia <strong>Programador-Diseñador</strong>, AS3 tiene algunos cambios que pueden llegar a afectar a personas que no estén muy acostumbradas a trabajar con código:</p>
<ul>
<li>No se puede poner codigo sobre los objetos (no mas <strong>on(release) </strong>)</li>
<li>No mas getURL (creo que lo primero qeu se aprende de Actionscript)</li>
<li>No está ni _root ni _parent</li>
<li>No mas #include</li>
<li>Es más estricto, no se puede hacer un casting de variable sin declararlo</li>
<li>Si se asignan propiedades a objetos nulos, da error</li>
</ul>
<p>Bueno, eso entre otras cosas. Creo que con todo esto va a ser dificil que un diseñador flash utilice Actionscript 3, con esto pueden pasar dos cosas, o bien que los diseñadores se dediquen a la parte gráfica exclusivamente, separado del código del programador, o bien que el diseñador haga sus "programaciones" en AS1, o AS" y que luego el programador tenga que pasar todo a AS3.<br />
Creo que de las dos opciones me quedo con lo primero, vamos a ver como evoluciona esto, como siempre digo, la tecnología es buenísima, ideal; el conflicto está en las personas que la deben utilizar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cristianhernandez.org/blog/?feed=rss2&amp;p=85</wfw:commentRss>
		</item>
		<item>
		<title>Widgets Last.fm</title>
		<link>http://www.cristianhernandez.org/blog/?p=83</link>
		<comments>http://www.cristianhernandez.org/blog/?p=83#comments</comments>
		<pubDate>Fri, 15 Jun 2007 21:29:32 +0000</pubDate>
		<dc:creator>Cristian Hernández</dc:creator>
		
		<category><![CDATA[Cool Sites]]></category>

		<guid isPermaLink="false">http://www.cristianhernandez.org/blog/?p=83</guid>
		<description><![CDATA[Uno de mis sitios preferidos, last.fm está ofreciendo unos bonitos widgets en Flash para poner en sitios/blog con informacion de listas y artistas. Como no quiero modificar mucho el template del blog pongo un ejemplo acá:
table.lfmWidget20070615212650 td {margin:0 !important;padding:0 !important;border:0 !important;}table.lfmWidget20070615212650 tr.lfmHead a:hover {background:url(http://panther1.last.fm/widgets/images/en/header/quilt/artist_horizontal_blue.png) no-repeat 0 0 !important;}table.lfmWidget20070615212650 tr.lfmEmbed object {float:left;}table.lfmWidget20070615212650 tr.lfmFoot td.lfmConfig a:hover {background:url(http://panther1.last.fm/widgets/images/en/footer/blue.png) [...]]]></description>
			<content:encoded><![CDATA[<p>Uno de mis sitios preferidos, <a href="http://www.last.fm/user/locopro/">last.fm</a> está ofreciendo unos bonitos widgets en Flash para poner en sitios/blog con informacion de listas y artistas. Como no quiero modificar mucho el template del blog pongo un ejemplo acá:</p>
<style type="text/css">table.lfmWidget20070615212650 td {margin:0 !important;padding:0 !important;border:0 !important;}table.lfmWidget20070615212650 tr.lfmHead a:hover {background:url(http://panther1.last.fm/widgets/images/en/header/quilt/artist_horizontal_blue.png) no-repeat 0 0 !important;}table.lfmWidget20070615212650 tr.lfmEmbed object {float:left;}table.lfmWidget20070615212650 tr.lfmFoot td.lfmConfig a:hover {background:url(http://panther1.last.fm/widgets/images/en/footer/blue.png) no-repeat 0px 0 !important;;}table.lfmWidget20070615212650 tr.lfmFoot td.lfmView a:hover {background:url(http://panther1.last.fm/widgets/images/en/footer/blue.png) no-repeat -85px 0 !important;}table.lfmWidget20070615212650 tr.lfmFoot td.lfmPopup a:hover {background:url(http://panther1.last.fm/widgets/images/en/footer/blue.png) no-repeat -159px 0 !important;}</style>
<table class="lfmWidget20070615212650" cellpadding="0" cellspacing="0" border="0" style="width:460px;">
<tr class="lfmHead">
<td><a title="Top artists" href="http://www.last.fm/user/locopro/charts/" target="_blank" style="display:block;overflow:hidden;height:20px;width:460px;background:url(http://panther1.last.fm/widgets/images/en/header/quilt/artist_horizontal_blue.png) no-repeat 0 -20px;text-decoration:none;"></a></td>
</tr>
<tr class="lfmEmbed">
<td>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="460" height="225" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab%23version=7,0,0,0" style="float:left;">
<param name="bgcolor" value="6598cd" />
<param name="movie" value="http://panther1.last.fm/widgets/quilt/9.swf" />
<param name="quality" value="high" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="FlashVars" value="type=user&amp;variable=locopro&amp;file=topartists&amp;bgColor=blue&amp;theme=blue&amp;lang=en" /><embed src="http://panther1.last.fm/widgets/quilt/9.swf" type="application/x-shockwave-flash" name="widgetPlayer" bgcolor="6598cd" width="460" height="225" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer"  FlashVars="type=user&amp;variable=locopro&amp;file=topartists&amp;bgColor=blue&amp;theme=blue&amp;lang=en" allowScriptAccess="sameDomain"></embed></object>
</td>
</tr>
<tr class="lfmFoot">
<td style="background:url(http://panther1.last.fm/widgets/images/footer_bg/blue.png) repeat-x 0 0;text-align:right;">
<table cellspacing="0" cellpadding="0" border="0" style="width:460px;">
<tr>
<td class="lfmConfig"><a href="http://www.last.fm/widgets/?widget=quilt&amp;url=user%2Flocopro%2Fpersonal&amp;quiltType=artist&amp;colour=blue&amp;orient=horizontal&amp;height=large&amp;from=code" title="Get your own widget" target="_blank" style="display:block;overflow:hidden;width:85px;height:20px;float:right;background:url(http://panther1.last.fm/widgets/images/en/footer/blue.png) no-repeat 0px -20px;text-decoration:none;"></a></td>
<td class="lfmView" style="width:74px;"><a href="http://www.last.fm/user/locopro/" title="View locopro's profile" target="_blank" style="display:block;overflow:hidden;width:74px;height:20px;background:url(http://panther1.last.fm/widgets/images/en/footer/blue.png) no-repeat -85px -20px;text-decoration:none;"></a></td>
<td class="lfmPopup"style="width:25px;"><a href="http://www.last.fm/widgets/popup/?widget=quilt&amp;url=user%2Flocopro%2Fpersonal&amp;quiltType=artist&amp;colour=blue&amp;orient=horizontal&amp;height=large&amp;from=code&amp;resize=1" title="Load this quilt in a pop up" target="_blank" style="display:block;overflow:hidden;width:25px;height:20px;background:url(http://panther1.last.fm/widgets/images/en/footer/blue.png) no-repeat -159px -20px;text-decoration:none;" onclick="window.open(this.href + '&amp;resize=0','lfm_popup','height=325,width=510,resizable=yes,scrollbars=yes'); return false;"></a></td>
</tr>
</table>
</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.cristianhernandez.org/blog/?feed=rss2&amp;p=83</wfw:commentRss>
		</item>
		<item>
		<title>Flex Module for Apache and IIS</title>
		<link>http://www.cristianhernandez.org/blog/?p=81</link>
		<comments>http://www.cristianhernandez.org/blog/?p=81#comments</comments>
		<pubDate>Sat, 05 May 2007 19:52:58 +0000</pubDate>
		<dc:creator>Cristian Hernández</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.cristianhernandez.org/blog/?p=81</guid>
		<description><![CDATA[En Adobe Labs han desarrollado un Módulo Flex para Apache e IIS. Este sirve para realizar una compilación en tiempo de ejecución de archivos MXML y Actionscript 3. Es decir que si colocamos, http://localhost/Main.mxml en nuestro browser veremos directamente el archivo SWF que se genera. Yo lo instalé, lo probé, realmente es muy rápido y [...]]]></description>
			<content:encoded><![CDATA[<p>En <a href="http://labs.adobe.com">Adobe Labs</a> han desarrollado un <a href="http://labs.adobe.com/wiki/index.php/Flex_Module_for_Apache_and_IIS">Módulo Flex para Apache e IIS</a>. Este sirve para realizar una compilación en tiempo de ejecución de archivos MXML y Actionscript 3. Es decir que si colocamos, http://localhost/Main.mxml en nuestro browser veremos directamente el archivo SWF que se genera. Yo lo instalé, lo probé, realmente es muy rápido y funciona bien.<br />
Está disponible para los siguiente servers:</p>
<ul>
<li>Apache 1.x/2.x (Windows, MacOS, o Linux) </li>
<li>IIS version 5.1, 6, o 7 (Windows)</li>
</ul>
<p>Además requiere:</p>
<ul>
<li>Flex SDK 2.0.1 o superior</li>
<li>JRE 1.4.2 o superior </li>
</ul>
<p>Mas info: <a href="http://labs.adobe.com/wiki/index.php/Flex_Module_for_Apache_and_IIS">Flex Module for Apache and IIS  en Adobe Labs</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cristianhernandez.org/blog/?feed=rss2&amp;p=81</wfw:commentRss>
		</item>
		<item>
		<title>Flex: Cairngorm Framework</title>
		<link>http://www.cristianhernandez.org/blog/?p=78</link>
		<comments>http://www.cristianhernandez.org/blog/?p=78#comments</comments>
		<pubDate>Fri, 27 Apr 2007 03:24:28 +0000</pubDate>
		<dc:creator>Cristian Hernández</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.cristianhernandez.org/blog/?p=78</guid>
		<description><![CDATA[Estuve trabajando mucho con el Framework para desarrollo en Flex Cairngorm. Me parece muy útil para acelerar el desarrollo, pero principalmente para la organización, actualización y reutilización del código, también para la escalabilidad del proyecto.

http://www.cristianhernandez.org/blog/wp-content/uploads/2007/04/cairngorm2_rpc.swf


// 
.
Cairngorm está basado en el patrón de diseño Model View Controller y está compuesto por:
Model Locator:
Es donde se guardan todas [...]]]></description>
			<content:encoded><![CDATA[<p>Estuve trabajando mucho con el Framework para desarrollo en Flex <strong><a href="http://labs.adobe.com/wiki/index.php/Cairngorm">Cairngorm</a></strong>. Me parece muy útil para acelerar el desarrollo, pero principalmente para la organización, actualización y reutilización del código, también para la escalabilidad del proyecto.<br />
<div id="swf1" style="text-align:center;">
http://www.cristianhernandez.org/blog/wp-content/uploads/2007/04/cairngorm2_rpc.swf
</div>
<script type="text/javascript">
// <![CDATA[ 
var so = new SWFObject("http://www.cristianhernandez.org/blog/wp-content/uploads/2007/04/cairngorm2_rpc.swf", "id1", 500, 500, "8", "#FFFFFF");
so.write("swf1")
// ]]&gt;
</script>
.<br />
Cairngorm está basado en el patrón de diseño Model View Controller y está compuesto por:<br />
<strong>Model Locator:</strong><br />
Es donde se guardan todas las los datos de la aplicación (Value Object) estos VO son objetos Bindables, es decir, si cambian sus valores se actualiza en todos los lugares donde se utilicen.<br />
<strong>View:</strong><br />
Las vistas de la aplicación, son componentes o grupos de componentes donde se encuentra la parte gráfica o visual.<br />
<strong>Front Controller:</strong><br />
Recibe todos los eventos que luego son mapeados en los commands.<br />
<strong>Command:</strong>Es donde está toda la logica, donde se procesan los eventos, se actualizan los VO.<br />
<strong>Delegate:</strong><br />
Son llamados por los Commands y "selecciona" que service utilizar, que parámetros pasar, aqui están instanciados todos los services.<br />
<strong>Service:</strong><br />
Están todas las llamadas a los servicios remotos, XML, WebServices, AMFPHP, etc.</p>
<p><strong>Algunos recursos:</strong></p>
<ul>
<li><a href="http://www.digimmersion.com/support/Flex%20UI%20Design%20For%20Cairngorm.pdf">Flex UI Design For Cairngorm</a></li>
<li><a href="http://www.asfusion.com/blog/entry/hello-world-cairngorm-example">Hello world cairngorm example</a></li>
<li><a href="http://www.cairngormdocs.org/">http://www.cairngormdocs.org/</a></li>
<li><a href="http://www.madeinflex.com/2006/10/15/cairngorm-i-introduccion/trackback/">Tutoriales de Made In Flex</a></li>
</ul>
<p>Bueno, eso es todo por ahora, más adelante seguiré hablando de esto ya que me ha gustado mucho.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cristianhernandez.org/blog/?feed=rss2&amp;p=78</wfw:commentRss>
		</item>
		<item>
		<title>Mini-FAQ sobre Flex 2</title>
		<link>http://www.cristianhernandez.org/blog/?p=79</link>
		<comments>http://www.cristianhernandez.org/blog/?p=79#comments</comments>
		<pubDate>Wed, 25 Apr 2007 02:27:57 +0000</pubDate>
		<dc:creator>Cristian Hernández</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Actionscript 3]]></category>

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

		<guid isPermaLink="false">http://www.cristianhernandez.org/blog/?p=79</guid>
		<description><![CDATA[Hace tiempo que vengo hablando sobre Flex 2, posteando ejemplos y otras cosas salteándome cualquier tipo de introducción. Ultimamente recibí varias consultas de desarrolladores que quieren conocer Flex, por eso armé algunas consultas comunes y armé este pequeño FAQ.
¿Para que sirve Flex?
Básicamente Flex está pensado para el desarrollo de RIAs (Rich Internet Applications), o sea [...]]]></description>
			<content:encoded><![CDATA[<p>Hace tiempo que vengo hablando sobre <a href="http://www.adobe.com/products/flex/">Flex 2</a>, posteando ejemplos y otras cosas salteándome cualquier tipo de introducción. Ultimamente recibí varias consultas de desarrolladores que quieren conocer Flex, por eso armé algunas consultas comunes y armé este pequeño FAQ.</p>
<p><strong>¿Para que sirve Flex?</strong><br />
Básicamente Flex está pensado para el desarrollo de <a href="http://es.wikipedia.org/wiki/RIA">RIAs (Rich Internet Applications)</a>, o sea aplicaciones Web con elementos de formulario, interacciones avanazadas, conexión a base de datos.</p>
<p><strong>¿Como es la forma de trabajar en Flex?</strong><br />
En resumen, son archivos XML (MXML) donde se encuentran las llamadas a los componentes, estados, vistas, etc. Los componentes pueden ser desarrollados por Adobe, o componentes propios. La programacíón se realiza en Actionscript 3, y estos códigos se colocan en archivos .as.</p>
<p><strong>¿Como se realiza la compilación de los proyectos?</strong><br />
Básicamente hay dos formas, en tiempo de ejecución en un Flex Server o con el SDK de Adobe. En el Flex Server se suben los archivos .mxml y  desde el browser se visualizan archivos swf. Una analogía conocida sería, se suben PHP y se visualizan HTML, este servidor está basado en Java. La otra es compilando los mxml con el SDK y subir directamente los archivos SWF.</p>
<p><strong>¿Donde puedo conseguir el SDK?</strong><br />
El SDK se puede bajar del sitio de <a href="http://www.adobe.com/products/flex/sdk/">Adobe</a> y es gratis.</p>
<p><strong>¿Hay alguna herramienta para desarrollar Flex 2?</strong><br />
Si, se puede utilizar el <a href="https://www.adobe.com/cfusion/tdrc/index.cfm?product=flex">Flex Builder 2</a>, este es un plug-in para <a href="http://www.eclipse.org/">Eclipse</a> que tiene asistentes muy útiles para la codificación, y también tiene una interfáz para el desarrollo visual.</p>
<p><strong>Para ejecutarse, del lado cliente, ¿se necesita lago más que el FLASH Player?</strong><br />
No, se necesita tener instalado el Flash Player 9. Y es compatible con cualquier navegador que tenga esa versión de Flash Player.</p>
<p><strong>¿Que tecnología de servidor debo utlizar para trabajar con Flex y base de datos?</strong><br />
Cualquiera, PHP, ASP, .NET, JSP, cualquier tipo de tecnología de servidor, utilizando <a href="http://www.amfphp.org/">Flash Remoting</a>, XML, WebServices, <a href="http://www.themidnightcoders.com/weborb/">WebOrb</a>, etc.</p>
<p>Bueno, eso es todo por ahora, es muy básico pero espero que sirva para aclarar algunas dudas <img src='http://www.cristianhernandez.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Cualquier cosa que quieran agregar o corregir no tienen mas que ponerlo en los comentarios.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cristianhernandez.org/blog/?feed=rss2&amp;p=79</wfw:commentRss>
		</item>
		<item>
		<title>Error con los uploads en Flash 8 y Flex 2</title>
		<link>http://www.cristianhernandez.org/blog/?p=77</link>
		<comments>http://www.cristianhernandez.org/blog/?p=77#comments</comments>
		<pubDate>Tue, 20 Mar 2007 13:25:12 +0000</pubDate>
		<dc:creator>Cristian Hernández</dc:creator>
		
		<category><![CDATA[Actionscript]]></category>

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

		<guid isPermaLink="false">http://www.cristianhernandez.org/blog/?p=77</guid>
		<description><![CDATA[Después de pubicar el componente para upload he recibido muchos mensajes que me comunicaban el mismo error:
Error #2044: IOErrorEvent no controlado: text=Error #2038: Error de E/S de archivo.
Tiempo después, en un proyecto personal, experimenté yo mismo en un proyecto personal con Flex, por suerte uno de los mensajes que recibí, de David, me dió una [...]]]></description>
			<content:encoded><![CDATA[<p>Después de pubicar el componente para upload he recibido muchos mensajes que me comunicaban el mismo error:</p>
<blockquote><p>Error #2044: IOErrorEvent no controlado: text=Error #2038: Error de E/S de archivo.</p></blockquote>
<p>Tiempo después, en un proyecto personal, experimenté yo mismo en un proyecto personal con Flex, por suerte uno de los mensajes que recibí, de David, me dió una solución:</p>
<blockquote><p>El problema se encuentra en la configuración de mod_security del Apache que bloquea el acceso del archivo temporal creado en el servidor al script 'upload.php'. Así que si tienen acceso a la configuración del Apache tienen que configurar este módulo para que permita este tipo de upload.</p></blockquote>
<p>En mi caso, como no tengo acceso a la configuración del Apache, tuve que buscar una solución "alternativa":<br />
Hay que modificar el <strong>.htaccess</strong> para deshabilitar el <strong>mod_security</strong> agregando las siguientes lineas:</p>
<div class="codesnip-container" >SecFilterEngine Off<br />
SecFilterScanPOST Off</div>
<p>Probé con esto y anda bien, espero que no traiga muchos problemas de seguridad, pero los uploads andan <img src='http://www.cristianhernandez.org/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.cristianhernandez.org/blog/?feed=rss2&amp;p=77</wfw:commentRss>
		</item>
		<item>
		<title>Flex DirBrowser Component</title>
		<link>http://www.cristianhernandez.org/blog/?p=75</link>
		<comments>http://www.cristianhernandez.org/blog/?p=75#comments</comments>
		<pubDate>Mon, 19 Mar 2007 19:57:18 +0000</pubDate>
		<dc:creator>Cristian Hernández</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Actionscript 3]]></category>

		<guid isPermaLink="false">http://www.cristianhernandez.org/blog/?p=75</guid>
		<description><![CDATA[Este componente es una mejora del componente File Upload que publiqué anteriormente.

Es simple, explora un directorio que se le pasa como parámetro, lista todos los archivos están en ese directorio, se pueden borrar y agregar nuevos archivos. Está pensado para imágenes.
Ejemplo
Flex Sources
Descargar todos los archivos
]]></description>
			<content:encoded><![CDATA[<p>Este componente es una mejora del componente File Upload que publiqué anteriormente.<br />
<img src="http://www.cristianhernandez.org/blog/wp-content/uploads/2007/03/file_browser.jpg" /><br />
Es simple, explora un directorio que se le pasa como parámetro, lista todos los archivos están en ese directorio, se pueden borrar y agregar nuevos archivos. Está pensado para imágenes.<br />
<a href="http://www.cristianhernandez.org/blog/wp-content/flex/browser/">Ejemplo</a><br />
<a href="http://www.cristianhernandez.org/blog/wp-content/flex/browser/srcview/">Flex Sources</a><br />
<a href="http://www.cristianhernandez.org/blog/wp-content/flex/browser/srcview/browseDir.zip">Descargar todos los archivos</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cristianhernandez.org/blog/?feed=rss2&amp;p=75</wfw:commentRss>
		</item>
		<item>
		<title>Apollo ya está disponible</title>
		<link>http://www.cristianhernandez.org/blog/?p=74</link>
		<comments>http://www.cristianhernandez.org/blog/?p=74#comments</comments>
		<pubDate>Mon, 19 Mar 2007 12:16:29 +0000</pubDate>
		<dc:creator>Cristian Hernández</dc:creator>
		
		<category><![CDATA[Apollo]]></category>

		<guid isPermaLink="false">http://www.cristianhernandez.org/blog/?p=74</guid>
		<description><![CDATA[Después de haber invertido parte del fin de semana en leer el libro del que hablé en mi post anterior, hoy me encuentro con la novedad que Apollo está disponible. Ya se puede empezar a jugar  
]]></description>
			<content:encoded><![CDATA[<p>Después de haber invertido parte del fin de semana en leer el libro del que hablé en mi post anterior, hoy me encuentro con la novedad que <a href="http://www.adobe.com/cfusion/entitlement/index.cfm?e=labs_apollo">Apollo está disponible</a>. Ya se puede empezar a jugar <img src='http://www.cristianhernandez.org/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.cristianhernandez.org/blog/?feed=rss2&amp;p=74</wfw:commentRss>
		</item>
	</channel>
</rss>
