<?xml version="1.0" encoding="iso-8859-1"?><!-- generator="b2evolution/3.3.3" -->
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Flash Actionscript 3 Tutoriales, Cursos, Recursos</title>
		<link>http://blog.miguelmoraleda.com//blog1.php</link>
		<atom:link rel="self" type="application/rss+xml" href="http://blog.miguelmoraleda.com//blog1.php?tempskin=_rss2" />
		<description>Actionscript blog</description>
		<language>es-ES</language>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<admin:generatorAgent rdf:resource="http://b2evolution.net/?v=3.3.3"/>
		<ttl>60</ttl>
				<item>
			<title>Trabajando con librerias externas con Subversion y Git</title>
			<link>http://blog.miguelmoraleda.com//blog1.php/2010/02/15/trabajando-con-librerias-externas-con-su</link>
			<pubDate>Tue, 16 Feb 2010 01:20:55 +0000</pubDate>			<dc:creator>Miguel</dc:creator>
			<category domain="main">etc</category>
<category domain="alt">flash</category>			<guid isPermaLink="false">78@http://blog.miguelmoraleda.com//</guid>
						<description>&lt;p&gt;En este post abordare el tema de las librerias externas y como trabajar con ellas. Como primera cosa deben estar familiarizados con el &lt;a href=&quot;http://es.wikipedia.org/wiki/Control_de_versiones&quot;&gt;Control de versiones&lt;/a&gt;. Yo lo explicare con mis propias palabras, pero ya se habran dado cuenta de que no soy muy bueno redactando, por lo que sere muy breve y practico. &lt;/p&gt;

&lt;p&gt;El Control de versiones se trata de gestionar los cambios que se llevan acabo en el codigo de fuente, imagenes, o simplemente documentos de nuestras aplicaciones.  La idea es poder manejar distintas versiones de &quot;algo&quot; de una manera simple (no estar guardando la carpeta para tener una version vieja). Esto consiste basicamente en un repositorio donde estan todos los archivos de tu proyecto. Y tu accedes a el con ciertas herramientas.  Si modificas algo debes sincronizar tus archivos con el repositorio, para que cualquier otro usuario del repositorio pueda ver los cambios. La gracia de esto es que es muy facil revertir los cambios en caso de cualquier error, ya que cada vez que sincronizas los archivos en el repositorio se guarda el historial para cada archivo. Ademas es la manera optima para trabajar en equipo (solo tambien). Ya que permite que muchos programadores trabajen sobre el mismo codigo sin pasar a llevar los cambios de los otros, esto ya lo explico mas adelante, por ahora dejemoslo hasta ahi. Los software de control de versiones ofrecen muchas otras opciones tales como crear tags (marcar un estado actual de la aplicacion, como una version para volver facilmente a ella), crear branches (una copia del repositorio donde puedes hacer pruebas, que si te gustan puedes volver a unir con el hilo principal), y bueno muchas otras cosas.&lt;/p&gt;

&lt;p&gt;Como primera cosa vamos a ver algunos terminos que se usan tipicamente, para poder usarlos de aqui en adelante, los terminos siempre los use en ingles, asi que los pondre en ese idioma.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;Repositorio:&lt;/strong&gt; El repositorio es el lugar en el que se almacenan los datos actualizados e hist&amp;#243;ricos, a menudo en un servidor.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Checkout / Clone:&lt;/strong&gt; Bajar una nueva copia del repositorio. Este es el primer paso para obtener codigo de terceros o el suyo propio.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Commit:&lt;/strong&gt; Un commit es subir al repositorios nuevos cambios.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Update:&lt;/strong&gt; Se refiere q traer los ultimos cambios en el repositorio a tu ambiente de trabajo.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Branch:&lt;/strong&gt;Un m&amp;#243;dulo puede ser branched o bifurcado en un momento de tiempo de forma que, desde ese momento en adelante, dos copias de esos ficheros puedan ser desarrolladas a diferentes velocidades o de diferentes formas, de modo independiente.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Trunk:&lt;/strong&gt; Es la linea principal del proyecto, por asi decirlo el branch principal... ojo que no es branch &lt;img src=&quot;http://blog.miguelmoraleda.com//rsc/smilies/graybigrazz.gif&quot; alt=&quot;&amp;#58;&amp;#80;&quot; class=&quot;middle&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bueno vistos estos terminos podemos empezar a ver algo mas especifico. En este articulo voy a revisar las 2 opciones mas comunes para trabajar con Control de versiones, estas son: Subversion y Github.&lt;/p&gt;
&lt;h4&gt;Subversion&lt;/h4&gt;
&lt;p&gt;Para trabajar con Subversion existen varias opciones de software, yo personalmente uso &lt;a href=&quot;http://tortoisesvn.net/&quot; target=&quot;blank&quot;&gt;TortoiseSVN&lt;/a&gt;, que es el que mas me acomoda. Cabe mencionar que solo esta disponible para PC, lo pueden &lt;a href=&quot;http://tortoisesvn.net/downloads&quot; target=&quot;blank&quot;&gt;DESCARGAR DESDE AQUI&lt;/a&gt;, con respecto a Mac no tengo experiencia, pero e buscado algunas alternativas en google y me encontre con &lt;a href=&quot;http://www.open.collab.net/downloads/community/&quot; target=&quot;blank&quot;&gt;este sitio&lt;/a&gt;, al preguntar por ahi cual seria la mejor alternativa para Mac &lt;a href=&quot;http://www.xinterface.net/&quot; target=&quot;blank&quot;&gt;xleon&lt;/a&gt; me comenta lo siguiente:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Sin duda &lt;a href=&quot;http://versionsapp.com/&quot; target=&quot;blank&quot;&gt;&quot;Versions&quot;&lt;/a&gt; (es de pago). Aunque hay una aplicaci&amp;#243;n de Subversion que se integra en el Finder de Mac. Lo puedes descargar en la web de &lt;a href=&quot;http://scplugin.tigris.org/&quot; target=&quot;blank&quot;&gt;Tigris&lt;/a&gt; (la misma del tortoise). Pero Versions es mil veces mejor.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Si alguien conoce algun programa mejor para mac, porfavor comente y cuentenos a todos cual es &lt;img src=&quot;http://blog.miguelmoraleda.com//rsc/smilies/icon_smile.gif&quot; alt=&quot;&amp;#58;&amp;#41;&quot; class=&quot;middle&quot; /&gt;. &lt;br /&gt;
Bueno como primer paso, antes de seguir leyendo deberian poner a bajar e instalar un cliente de Subversion ya sea para PC o Mac. Desde ahora en adelante yo seguire mi articulo refiriendome a TortoiseSVN para PC. &lt;br /&gt;
Cuando terminen con la instalacion, hagan click derecho sobre una carpeta o el escritorio o cualquier parte, veran que en el menu hay nuevas opciones, justamente las del TortoiseSVN, veran algo como esto.&lt;br /&gt;
&lt;a href=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/TortoiseSVN-norepositorie.jpg&quot;&gt;&lt;img src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/TortoiseSVN-norepositorie.jpg&quot; alt=&quot;&quot; title=&quot;TortoiseSVN-norepositorie&quot; width=&quot;379&quot; height=&quot;333&quot; class=&quot;alignleft size-full wp-image-403&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
De este menu la opcion mas importante por ahora es la que dice SVN Checkout, la cual nos permitira bajar un repositorio. Por lo que sera la primera cosa que haremos.&lt;/p&gt;
&lt;h4&gt;Descargando una libreria externa&lt;/h4&gt;
&lt;p&gt;Esto es muy sencillo, creen una carpeta con cualquier nombre, por ejemplo &quot;papervision&quot;, le dan click derecho a la carpeta y seleccionan SVN Checkout. Se abrira la siguiente ventana del Tortoise, introducen la direccion al repositorio que quieran bajar y luego apretan aceptar. Para este ejemplo nos bajaremos &lt;a href=&quot;http://code.google.com/p/papervision3d/&quot; target=&quot;blank&quot;&gt;Papervision3D&lt;/a&gt;, un motor de 3D para flash.&lt;br /&gt;
&lt;a href=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/fit-400x320.jpg&quot;&gt;&lt;img src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/fit-400x320.jpg&quot; alt=&quot;svn&quot; title=&quot;Subversion&quot; width=&quot;400&quot; height=&quot;276&quot; class=&quot;aligncenter size-full wp-image-334&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
La url que deben poner en la ventana del Tortoise es: &lt;a href=&quot;http://papervision3d.googlecode.com/svn/trunk/&quot;&gt;http://papervision3d.googlecode.com/svn/trunk/&lt;/a&gt; , al apretar aceptar comenzaran a descargarse todos los archivos del proyecto. Con esto ya tienen todos los archivos del repositorio, entre los cuales pueden encontrar el source, ejemplos, distintas versiones de la libreria, etc. Ahora notaran que la carpeta tiene un icono distinto al tipico de carpeta, tiene un ticket verde, eso lo agrega TortoiseSVN y representa que la libreria no tiene cambios realizados por ustedes, es decir, esta tal cual la bajaron. Si modifican cualquier archivo adentro veran que ese simbolo cambia a un simbolo de exclamacion rojo, que representa justamente que han cambiado algo. Otro cambio que veran es que si ahora hacen click derecho sobre su carpeta, el menu de TortoiseSVN es distinto. Ahora nos muestra muchas mas opciones, ya que, es esa carpeta esta linkeada a un repositorio. El menu se vera asi:&lt;br /&gt;
&lt;a href=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/TortoiseSVN-repositorie.jpg&quot;&gt;&lt;img src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/TortoiseSVN-repositorie.jpg&quot; alt=&quot;&quot; title=&quot;TortoiseSVN-repositorie&quot; width=&quot;397&quot; height=&quot;634&quot; class=&quot;alignleft size-full wp-image-411&quot; /&gt;&lt;/a&gt;, por ahora solo destacar de este menu la opcion SVN Update, pueden probar apretarlo ya mismo, veran que se abrira una ventana y finalmente les dira: Completed At revision: 934, esto significa que han actualizado el repositorio, no vieron mayores cambios porque acaban de bajar el repositorio original, pero si la gente de Papervision hiciera cambios, basta con hacer update para obtener los nuevos archivos o directamente se modificaran los archivos actuales, de ser asi aparecera el detalle de todo lo nuevo. En el menu que se extiende tambien encontraran opciones como show log, que les mostrara todo el historial de los archivos desde los comienzos del repositorio, y muchas otras cosas q no me vale detallar ahora. La otra opcion importante es SVN Commit, aunque para los que recien estan aprendiendo esto no les sera muy util por ahora, ya que para usarla deben tener permiso de escribir en el repositorio, esa es la opcion que usa la gente de Papervision para subir los cambios que han realizado en el repositorio. La idea de este post es principalmente explicar como bajar librerias de terceros y como usarlas, por lo que no entrare en detalle en el tema de modificacion. Ahora pasare a explicar como realizar este mismo proceso con Github.&lt;/p&gt;
&lt;h4&gt;Git&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/&quot; target=&quot;blank&quot;&gt;Git&lt;/a&gt; es otro sistema de Control de Versiones, es mucho mas nuevo que Subversion, este sistema esta maravillando a muchos equipos de trabajo, por lo que muchas librerias estan migrando a este sistema, por lo que es importante aprender a usarlo y sacar provecho de el ya que esta muy bueno. Me gustaria aclarar que yo recien estoy comenzando con &lt;a href=&quot;https://github.com/&quot; target=&quot;blank&quot;&gt;Git&lt;/a&gt;&lt;br /&gt;
, por lo que comentare los que yo se al respecto. Como primera cosa, &lt;a href=&quot;https://github.com/&quot; target=&quot;blank&quot;&gt;Git&lt;/a&gt;&lt;br /&gt;
es basicamente lo mismo que Subversion, pero integra cosas muy poderosas, ademas de mejorar la performance del sistema bastante. Lo que mas me gusto de &lt;a href=&quot;https://github.com/&quot; target=&quot;blank&quot;&gt;Git&lt;/a&gt;&lt;br /&gt;
es el concepto de Social Coding, si no me equivoco Subversion vendria hacer lo mismo, pero yo no conozco ningun sitio que brinde las posibilidades que nos da &lt;a href=&quot;https://github.com/&quot; target=&quot;blank&quot;&gt;Github&lt;/a&gt;&lt;br /&gt;
(un sitio donde podran navegar por todos los repositorios publicos), ya estoy dando mucha vuelva y quizas nadie me entiende. La gran gracia de esto es que te permite crear un branch de tu libreria favorita y comenzar a trabajar sobre ella, ya sea para mejorarla, jugar o lo que sea. El resto de usuarios en el sitio pueden ver que tu has abierto un Branch de la libreria y pueden ver los cambios que haz hecho, es mas, la misma gente que desarrolla la libreria que has brancheado podria llegar a ver los cambios que haz hecho y si les parecen buenos tienen la posibilidad de unir tu branch con el hilo original (master), esto nos brinda la oportunidad de aportar con nuestros conocimientos sin necesariamente pertenecer al grupo original de desarrollo. Eso para mi es un gran cambio con respecto a Subversion, pero tambien hay otras cosas destacables, tales como que los commit en Github son locales, por lo cual pueden ir guardando los cambios que realizen en el repositorio de manera local y luego sincronizarlo todo con el servidor remoto, que ventajas tiene esto? hacer commit cuando no tengan internet, ya sea en un avion, o que se yo, al medio de la nada. Tambien otra de las cosas a destacar, es el manejo que hade Git de la informacion, la cual consigue una performance notable a diferencia de Subversion, otra diferencia es que Git solo crea una carpeta llamada .git en la raiz del repositorio, a diferencia de Subversion que crea su carpeta .svn en la carpeta raiz y en cada sub-carpeta del repositorio, lo cual es bastante molesto. La verda es que hay otras muchas razones por las cuales encuentro Git mucho mejor que Subversion, pero no van al caso ahora. Vamos a ver como usar esta vaina. &lt;/p&gt;

&lt;p&gt;Lo primero es descargar el programa, esto lo hacen desde el sitio oficial &lt;a href=&quot;http://git-scm.com/download&quot;&gt;http://git-scm.com/download&lt;/a&gt;, primera grata sorpresa es que existen versiones para todos los SO tipicos, descargan e instalan. Y ahora la no tan grata sorpresa, el programa simula una consola, por lo que el uso de este es mediante comandos, tambien existen versiones visuales que se paren mas a TortoiseSVN, pero yo la verdad nunca las probe, sobre todo porque el tema de los comandos es bastante sencillo y rapido de usar y a mi me acomoda mucho, es un placer poder usar ls en vez de dir &lt;img src=&quot;http://blog.miguelmoraleda.com//rsc/smilies/icon_smile.gif&quot; alt=&quot;&amp;#58;&amp;#41;&quot; class=&quot;middle&quot; /&gt;, los que gusten de linux entenderan. Abran el Git Bash que se acaban de instalar y veran algo como esto:&lt;br /&gt;
&lt;a href=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/gitBach.jpg&quot;&gt;&lt;img src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/gitBach.jpg&quot; alt=&quot;&quot; title=&quot;gitBach&quot; width=&quot;500&quot; height=&quot;185&quot; class=&quot;aligncenter size-full wp-image-413&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Ahi si escriben si escriben: ls es como un dir... y con cd &quot;Nombre de la carpeta&quot; entran a los directorios, cd .. vuelven atras, etc, etc es un simple Bash tipo linux. Pueden ir hasta el directorio que quieran usar para guardar sus librerias y luego para hacer checkout de un repositorio (en terminologia Git, hacer un clone) deben escribir:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;git clone git://github.com/Papervision3D/Papervision3D.git&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Con git no es necesario crear una carpeta primero para hacer el checkout, haciendo clone directamente se creara un directorio con el repositorio. Tambien notaran la gran diferencia en la velocidad de descarga.&lt;/p&gt;
&lt;h4&gt;Usando las librerias&lt;/h4&gt;
&lt;p&gt;Para poder utilizar las librerias deben configurar los source path en el Flash IDE, para esto van a edicion - preferencias - van a la solapa de actionscript y van abajo al boton de &quot;actionscript 3.0 settings&quot; luego se les abrira una ventana. &lt;br /&gt;
&lt;a href=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/sourcePath.jpg&quot;&gt;&lt;img src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/sourcePath.jpg&quot; alt=&quot;&quot; title=&quot;sourcePath&quot; width=&quot;436&quot; height=&quot;510&quot; class=&quot;aligncenter size-full wp-image-418&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Ahi apretan el boton &quot;+&quot; para agregar una nueva entrada y luego apretan el boton de carpeta para seleccionar la carpeta &quot;c:\DONDEPUSISTELACARPETA\Papervision\branches\fp10\src&quot;, le das a todo aceptar y estas listo para usar la libreria.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blog.miguelmoraleda.com//blog1.php/2010/02/15/trabajando-con-librerias-externas-con-su&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>En este post abordare el tema de las librerias externas y como trabajar con ellas. Como primera cosa deben estar familiarizados con el <a href="http://es.wikipedia.org/wiki/Control_de_versiones">Control de versiones</a>. Yo lo explicare con mis propias palabras, pero ya se habran dado cuenta de que no soy muy bueno redactando, por lo que sere muy breve y practico. </p>

<p>El Control de versiones se trata de gestionar los cambios que se llevan acabo en el codigo de fuente, imagenes, o simplemente documentos de nuestras aplicaciones.  La idea es poder manejar distintas versiones de "algo" de una manera simple (no estar guardando la carpeta para tener una version vieja). Esto consiste basicamente en un repositorio donde estan todos los archivos de tu proyecto. Y tu accedes a el con ciertas herramientas.  Si modificas algo debes sincronizar tus archivos con el repositorio, para que cualquier otro usuario del repositorio pueda ver los cambios. La gracia de esto es que es muy facil revertir los cambios en caso de cualquier error, ya que cada vez que sincronizas los archivos en el repositorio se guarda el historial para cada archivo. Ademas es la manera optima para trabajar en equipo (solo tambien). Ya que permite que muchos programadores trabajen sobre el mismo codigo sin pasar a llevar los cambios de los otros, esto ya lo explico mas adelante, por ahora dejemoslo hasta ahi. Los software de control de versiones ofrecen muchas otras opciones tales como crear tags (marcar un estado actual de la aplicacion, como una version para volver facilmente a ella), crear branches (una copia del repositorio donde puedes hacer pruebas, que si te gustan puedes volver a unir con el hilo principal), y bueno muchas otras cosas.</p>

<p>Como primera cosa vamos a ver algunos terminos que se usan tipicamente, para poder usarlos de aqui en adelante, los terminos siempre los use en ingles, asi que los pondre en ese idioma.</p>
<ul>
	<li><strong>Repositorio:</strong> El repositorio es el lugar en el que se almacenan los datos actualizados e hist&#243;ricos, a menudo en un servidor.</li>
	<li><strong>Checkout / Clone:</strong> Bajar una nueva copia del repositorio. Este es el primer paso para obtener codigo de terceros o el suyo propio.</li>
	<li><strong>Commit:</strong> Un commit es subir al repositorios nuevos cambios.</li>
	<li><strong>Update:</strong> Se refiere q traer los ultimos cambios en el repositorio a tu ambiente de trabajo.</li>
	<li><strong>Branch:</strong>Un m&#243;dulo puede ser branched o bifurcado en un momento de tiempo de forma que, desde ese momento en adelante, dos copias de esos ficheros puedan ser desarrolladas a diferentes velocidades o de diferentes formas, de modo independiente.</li>
	<li><strong>Trunk:</strong> Es la linea principal del proyecto, por asi decirlo el branch principal... ojo que no es branch <img src="http://blog.miguelmoraleda.com//rsc/smilies/graybigrazz.gif" alt="&#58;&#80;" class="middle" /></li>
</ul>
<p>Bueno vistos estos terminos podemos empezar a ver algo mas especifico. En este articulo voy a revisar las 2 opciones mas comunes para trabajar con Control de versiones, estas son: Subversion y Github.</p>
<h4>Subversion</h4>
<p>Para trabajar con Subversion existen varias opciones de software, yo personalmente uso <a href="http://tortoisesvn.net/" target="blank">TortoiseSVN</a>, que es el que mas me acomoda. Cabe mencionar que solo esta disponible para PC, lo pueden <a href="http://tortoisesvn.net/downloads" target="blank">DESCARGAR DESDE AQUI</a>, con respecto a Mac no tengo experiencia, pero e buscado algunas alternativas en google y me encontre con <a href="http://www.open.collab.net/downloads/community/" target="blank">este sitio</a>, al preguntar por ahi cual seria la mejor alternativa para Mac <a href="http://www.xinterface.net/" target="blank">xleon</a> me comenta lo siguiente:</p>
<blockquote><p>Sin duda <a href="http://versionsapp.com/" target="blank">"Versions"</a> (es de pago). Aunque hay una aplicaci&#243;n de Subversion que se integra en el Finder de Mac. Lo puedes descargar en la web de <a href="http://scplugin.tigris.org/" target="blank">Tigris</a> (la misma del tortoise). Pero Versions es mil veces mejor.</p></blockquote>
<p>Si alguien conoce algun programa mejor para mac, porfavor comente y cuentenos a todos cual es <img src="http://blog.miguelmoraleda.com//rsc/smilies/icon_smile.gif" alt="&#58;&#41;" class="middle" />. <br />
Bueno como primer paso, antes de seguir leyendo deberian poner a bajar e instalar un cliente de Subversion ya sea para PC o Mac. Desde ahora en adelante yo seguire mi articulo refiriendome a TortoiseSVN para PC. <br />
Cuando terminen con la instalacion, hagan click derecho sobre una carpeta o el escritorio o cualquier parte, veran que en el menu hay nuevas opciones, justamente las del TortoiseSVN, veran algo como esto.<br />
<a href="http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/TortoiseSVN-norepositorie.jpg"><img src="http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/TortoiseSVN-norepositorie.jpg" alt="" title="TortoiseSVN-norepositorie" width="379" height="333" class="alignleft size-full wp-image-403" /></a><br />
De este menu la opcion mas importante por ahora es la que dice SVN Checkout, la cual nos permitira bajar un repositorio. Por lo que sera la primera cosa que haremos.</p>
<h4>Descargando una libreria externa</h4>
<p>Esto es muy sencillo, creen una carpeta con cualquier nombre, por ejemplo "papervision", le dan click derecho a la carpeta y seleccionan SVN Checkout. Se abrira la siguiente ventana del Tortoise, introducen la direccion al repositorio que quieran bajar y luego apretan aceptar. Para este ejemplo nos bajaremos <a href="http://code.google.com/p/papervision3d/" target="blank">Papervision3D</a>, un motor de 3D para flash.<br />
<a href="http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/fit-400x320.jpg"><img src="http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/fit-400x320.jpg" alt="svn" title="Subversion" width="400" height="276" class="aligncenter size-full wp-image-334" /></a><br />
La url que deben poner en la ventana del Tortoise es: <a href="http://papervision3d.googlecode.com/svn/trunk/">http://papervision3d.googlecode.com/svn/trunk/</a> , al apretar aceptar comenzaran a descargarse todos los archivos del proyecto. Con esto ya tienen todos los archivos del repositorio, entre los cuales pueden encontrar el source, ejemplos, distintas versiones de la libreria, etc. Ahora notaran que la carpeta tiene un icono distinto al tipico de carpeta, tiene un ticket verde, eso lo agrega TortoiseSVN y representa que la libreria no tiene cambios realizados por ustedes, es decir, esta tal cual la bajaron. Si modifican cualquier archivo adentro veran que ese simbolo cambia a un simbolo de exclamacion rojo, que representa justamente que han cambiado algo. Otro cambio que veran es que si ahora hacen click derecho sobre su carpeta, el menu de TortoiseSVN es distinto. Ahora nos muestra muchas mas opciones, ya que, es esa carpeta esta linkeada a un repositorio. El menu se vera asi:<br />
<a href="http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/TortoiseSVN-repositorie.jpg"><img src="http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/TortoiseSVN-repositorie.jpg" alt="" title="TortoiseSVN-repositorie" width="397" height="634" class="alignleft size-full wp-image-411" /></a>, por ahora solo destacar de este menu la opcion SVN Update, pueden probar apretarlo ya mismo, veran que se abrira una ventana y finalmente les dira: Completed At revision: 934, esto significa que han actualizado el repositorio, no vieron mayores cambios porque acaban de bajar el repositorio original, pero si la gente de Papervision hiciera cambios, basta con hacer update para obtener los nuevos archivos o directamente se modificaran los archivos actuales, de ser asi aparecera el detalle de todo lo nuevo. En el menu que se extiende tambien encontraran opciones como show log, que les mostrara todo el historial de los archivos desde los comienzos del repositorio, y muchas otras cosas q no me vale detallar ahora. La otra opcion importante es SVN Commit, aunque para los que recien estan aprendiendo esto no les sera muy util por ahora, ya que para usarla deben tener permiso de escribir en el repositorio, esa es la opcion que usa la gente de Papervision para subir los cambios que han realizado en el repositorio. La idea de este post es principalmente explicar como bajar librerias de terceros y como usarlas, por lo que no entrare en detalle en el tema de modificacion. Ahora pasare a explicar como realizar este mismo proceso con Github.</p>
<h4>Git</h4>
<p><a href="https://github.com/" target="blank">Git</a> es otro sistema de Control de Versiones, es mucho mas nuevo que Subversion, este sistema esta maravillando a muchos equipos de trabajo, por lo que muchas librerias estan migrando a este sistema, por lo que es importante aprender a usarlo y sacar provecho de el ya que esta muy bueno. Me gustaria aclarar que yo recien estoy comenzando con <a href="https://github.com/" target="blank">Git</a><br />
, por lo que comentare los que yo se al respecto. Como primera cosa, <a href="https://github.com/" target="blank">Git</a><br />
es basicamente lo mismo que Subversion, pero integra cosas muy poderosas, ademas de mejorar la performance del sistema bastante. Lo que mas me gusto de <a href="https://github.com/" target="blank">Git</a><br />
es el concepto de Social Coding, si no me equivoco Subversion vendria hacer lo mismo, pero yo no conozco ningun sitio que brinde las posibilidades que nos da <a href="https://github.com/" target="blank">Github</a><br />
(un sitio donde podran navegar por todos los repositorios publicos), ya estoy dando mucha vuelva y quizas nadie me entiende. La gran gracia de esto es que te permite crear un branch de tu libreria favorita y comenzar a trabajar sobre ella, ya sea para mejorarla, jugar o lo que sea. El resto de usuarios en el sitio pueden ver que tu has abierto un Branch de la libreria y pueden ver los cambios que haz hecho, es mas, la misma gente que desarrolla la libreria que has brancheado podria llegar a ver los cambios que haz hecho y si les parecen buenos tienen la posibilidad de unir tu branch con el hilo original (master), esto nos brinda la oportunidad de aportar con nuestros conocimientos sin necesariamente pertenecer al grupo original de desarrollo. Eso para mi es un gran cambio con respecto a Subversion, pero tambien hay otras cosas destacables, tales como que los commit en Github son locales, por lo cual pueden ir guardando los cambios que realizen en el repositorio de manera local y luego sincronizarlo todo con el servidor remoto, que ventajas tiene esto? hacer commit cuando no tengan internet, ya sea en un avion, o que se yo, al medio de la nada. Tambien otra de las cosas a destacar, es el manejo que hade Git de la informacion, la cual consigue una performance notable a diferencia de Subversion, otra diferencia es que Git solo crea una carpeta llamada .git en la raiz del repositorio, a diferencia de Subversion que crea su carpeta .svn en la carpeta raiz y en cada sub-carpeta del repositorio, lo cual es bastante molesto. La verda es que hay otras muchas razones por las cuales encuentro Git mucho mejor que Subversion, pero no van al caso ahora. Vamos a ver como usar esta vaina. </p>

<p>Lo primero es descargar el programa, esto lo hacen desde el sitio oficial <a href="http://git-scm.com/download">http://git-scm.com/download</a>, primera grata sorpresa es que existen versiones para todos los SO tipicos, descargan e instalan. Y ahora la no tan grata sorpresa, el programa simula una consola, por lo que el uso de este es mediante comandos, tambien existen versiones visuales que se paren mas a TortoiseSVN, pero yo la verdad nunca las probe, sobre todo porque el tema de los comandos es bastante sencillo y rapido de usar y a mi me acomoda mucho, es un placer poder usar ls en vez de dir <img src="http://blog.miguelmoraleda.com//rsc/smilies/icon_smile.gif" alt="&#58;&#41;" class="middle" />, los que gusten de linux entenderan. Abran el Git Bash que se acaban de instalar y veran algo como esto:<br />
<a href="http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/gitBach.jpg"><img src="http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/gitBach.jpg" alt="" title="gitBach" width="500" height="185" class="aligncenter size-full wp-image-413" /></a><br />
Ahi si escriben si escriben: ls es como un dir... y con cd "Nombre de la carpeta" entran a los directorios, cd .. vuelven atras, etc, etc es un simple Bash tipo linux. Pueden ir hasta el directorio que quieran usar para guardar sus librerias y luego para hacer checkout de un repositorio (en terminologia Git, hacer un clone) deben escribir:</p>

<p><strong>git clone git://github.com/Papervision3D/Papervision3D.git</strong></p>

<p>Con git no es necesario crear una carpeta primero para hacer el checkout, haciendo clone directamente se creara un directorio con el repositorio. Tambien notaran la gran diferencia en la velocidad de descarga.</p>
<h4>Usando las librerias</h4>
<p>Para poder utilizar las librerias deben configurar los source path en el Flash IDE, para esto van a edicion - preferencias - van a la solapa de actionscript y van abajo al boton de "actionscript 3.0 settings" luego se les abrira una ventana. <br />
<a href="http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/sourcePath.jpg"><img src="http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/sourcePath.jpg" alt="" title="sourcePath" width="436" height="510" class="aligncenter size-full wp-image-418" /></a><br />
Ahi apretan el boton "+" para agregar una nueva entrada y luego apretan el boton de carpeta para seleccionar la carpeta "c:\DONDEPUSISTELACARPETA\Papervision\branches\fp10\src", le das a todo aceptar y estas listo para usar la libreria.</p><div class="item_footer"><p><small><a href="http://blog.miguelmoraleda.com//blog1.php/2010/02/15/trabajando-con-librerias-externas-con-su">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://blog.miguelmoraleda.com//blog1.php/2010/02/15/trabajando-con-librerias-externas-con-su#comments</comments>
			<wfw:commentRss>http://blog.miguelmoraleda.com//blog1.php?tempskin=_rss2&#38;disp=comments&#38;p=78</wfw:commentRss>
		</item>
				<item>
			<title>Detonator - Explosion Framework para Unity3D</title>
			<link>http://blog.miguelmoraleda.com//blog1.php/2010/02/15/detonator-explosion-framework-para-unity</link>
			<pubDate>Mon, 15 Feb 2010 15:58:49 +0000</pubDate>			<dc:creator>Miguel</dc:creator>
			<category domain="main">Unity3D</category>			<guid isPermaLink="false">77@http://blog.miguelmoraleda.com//</guid>
						<description>&lt;p&gt;Detonator es un framework desarrollado por &lt;a href=&quot;http://variancetheory.com/&quot; target=&quot;_blank&quot;&gt;Ben Throop&lt;/a&gt; en el Unity Summer of Code 2009. Este conjunto de scripts hace facil la incorporacion de explosiones a nuestros proyectos con Unity. En su uso mas sencillo, Detonator es un componente que puede ser atachado a cualquier GameObject. En tiempo de ejecucion crea explosiones que son configurables en muchos aspectos, tales como color. tama&amp;#241;o, duracion detalle y sub'elementos como chispas, humo o ondas de choque. Tambien podemos usar Detonator para crear nuestras propias explosiones, extendiendo los scripts para modificarlos.&lt;/p&gt;

&lt;p&gt;Este framework es una excelente extension para sus projectos hechos con unity.&lt;/p&gt;
&lt;h3&gt;&lt;a href=&quot;http://unity3d.com/support/resources/unity-extensions/explosion-framework&quot; target=&quot;blank&quot;&gt;PAGINA EN EL SITIO DE UNITY&lt;/a&gt;&lt;/h3&gt;
&lt;h3&gt;&lt;a href=&quot;http://unity3d.com/support/resources/files/Detonator.unitypackage&quot; target=&quot;blank&quot;&gt;DESCARGAR UNITY PACKAGE&lt;/a&gt;&lt;/h3&gt;
&lt;h3&gt;Lean mas sobre este excelente recurso en el  &lt;a href=&quot;http://variancetheory.com/category/blog/&quot; target=&quot;blank&quot;&gt;Blog de Ben Throop&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Hagan click en una de las imagenes de abajo para verlo en accion. Necesitan tener instalado el &lt;a href=&quot;http://unity3d.com/webplayer/&quot; target=&quot;blank&quot;&gt;plugin de Unity.&lt;/a&gt; &lt;br /&gt;
NOTA: Aveces me a dado problema con IE, si les pasa algo similar prueben con otro browser&lt;br /&gt;
&lt;a href=&quot;http://miguelmoraleda.com/examples/unity3D/explosionFramework/&quot; target=&quot;blank&quot;&gt;&lt;img src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/explosion1.jpg&quot; alt=&quot;explosion1&quot; title=&quot;explosion1&quot; width=&quot;500&quot; height=&quot;256&quot; class=&quot;aligncenter size-full wp-image-388&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://miguelmoraleda.com/examples/unity3D/explosionFramework/&quot; target=&quot;blank&quot;&gt;&lt;img src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/explosion2.jpg&quot; alt=&quot;&quot; title=&quot;explosion2&quot; width=&quot;500&quot; height=&quot;260&quot; class=&quot;aligncenter size-full wp-image-389&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://miguelmoraleda.com/examples/unity3D/explosionFramework/&quot; target=&quot;blank&quot;&gt;&lt;img src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/explosion3.jpg&quot; alt=&quot;&quot; title=&quot;explosion3&quot; width=&quot;500&quot; height=&quot;263&quot; class=&quot;aligncenter size-full wp-image-390&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://miguelmoraleda.com/examples/unity3D/explosionFramework/&quot; target=&quot;blank&quot;&gt;&lt;img src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/explosion4.jpg&quot; alt=&quot;&quot; title=&quot;explosion4&quot; width=&quot;500&quot; height=&quot;332&quot; class=&quot;aligncenter size-full wp-image-391&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://miguelmoraleda.com/examples/unity3D/explosionFramework/&quot; target=&quot;blank&quot;&gt;&lt;img src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/explosion5.jpg&quot; alt=&quot;&quot; title=&quot;explosion5&quot; width=&quot;500&quot; height=&quot;277&quot; class=&quot;aligncenter size-full wp-image-392&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blog.miguelmoraleda.com//blog1.php/2010/02/15/detonator-explosion-framework-para-unity&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Detonator es un framework desarrollado por <a href="http://variancetheory.com/" target="_blank">Ben Throop</a> en el Unity Summer of Code 2009. Este conjunto de scripts hace facil la incorporacion de explosiones a nuestros proyectos con Unity. En su uso mas sencillo, Detonator es un componente que puede ser atachado a cualquier GameObject. En tiempo de ejecucion crea explosiones que son configurables en muchos aspectos, tales como color. tama&#241;o, duracion detalle y sub'elementos como chispas, humo o ondas de choque. Tambien podemos usar Detonator para crear nuestras propias explosiones, extendiendo los scripts para modificarlos.</p>

<p>Este framework es una excelente extension para sus projectos hechos con unity.</p>
<h3><a href="http://unity3d.com/support/resources/unity-extensions/explosion-framework" target="blank">PAGINA EN EL SITIO DE UNITY</a></h3>
<h3><a href="http://unity3d.com/support/resources/files/Detonator.unitypackage" target="blank">DESCARGAR UNITY PACKAGE</a></h3>
<h3>Lean mas sobre este excelente recurso en el  <a href="http://variancetheory.com/category/blog/" target="blank">Blog de Ben Throop</a></h3>
<p>Hagan click en una de las imagenes de abajo para verlo en accion. Necesitan tener instalado el <a href="http://unity3d.com/webplayer/" target="blank">plugin de Unity.</a> <br />
NOTA: Aveces me a dado problema con IE, si les pasa algo similar prueben con otro browser<br />
<a href="http://miguelmoraleda.com/examples/unity3D/explosionFramework/" target="blank"><img src="http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/explosion1.jpg" alt="explosion1" title="explosion1" width="500" height="256" class="aligncenter size-full wp-image-388" /></a><br />
<a href="http://miguelmoraleda.com/examples/unity3D/explosionFramework/" target="blank"><img src="http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/explosion2.jpg" alt="" title="explosion2" width="500" height="260" class="aligncenter size-full wp-image-389" /></a><br />
<a href="http://miguelmoraleda.com/examples/unity3D/explosionFramework/" target="blank"><img src="http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/explosion3.jpg" alt="" title="explosion3" width="500" height="263" class="aligncenter size-full wp-image-390" /></a><br />
<a href="http://miguelmoraleda.com/examples/unity3D/explosionFramework/" target="blank"><img src="http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/explosion4.jpg" alt="" title="explosion4" width="500" height="332" class="aligncenter size-full wp-image-391" /></a><br />
<a href="http://miguelmoraleda.com/examples/unity3D/explosionFramework/" target="blank"><img src="http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/explosion5.jpg" alt="" title="explosion5" width="500" height="277" class="aligncenter size-full wp-image-392" /></a></p><div class="item_footer"><p><small><a href="http://blog.miguelmoraleda.com//blog1.php/2010/02/15/detonator-explosion-framework-para-unity">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://blog.miguelmoraleda.com//blog1.php/2010/02/15/detonator-explosion-framework-para-unity#comments</comments>
			<wfw:commentRss>http://blog.miguelmoraleda.com//blog1.php?tempskin=_rss2&#38;disp=comments&#38;p=77</wfw:commentRss>
		</item>
				<item>
			<title>Trabajar con Flash Media Server en Influxis hosting</title>
			<link>http://blog.miguelmoraleda.com//blog1.php/2010/02/15/trabajar-con-flash-media-server-en-influ</link>
			<pubDate>Mon, 15 Feb 2010 15:56:31 +0000</pubDate>			<dc:creator>Miguel</dc:creator>
			<category domain="main">actionscript</category>
<category domain="alt">flash</category>			<guid isPermaLink="false">76@http://blog.miguelmoraleda.com//</guid>
						<description>&lt;p&gt;&lt;center&gt;&lt;a href=&quot;http://www.influxis.com/&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/influxis.png&quot; alt=&quot;influxis&quot; title=&quot;influxis&quot; width=&quot;183&quot; height=&quot;183&quot; class=&quot;alignnone size-full wp-image-347&quot; /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;
El servidor de medios Flash de Adobe (Adobe Flash Media Server (FMS)) permite streaming de video, audio y archivos de datos en tiempo real para aplicaciones interactivas desarrolladas en Flash. Es por esto que es ideal para desarrollar aplicaciones de colaboracion multiusuario, juegos multiplayer, video chat, etc.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Flash Media Server es un concentrador de aplicaciones basadas en Flash para conectarse a un centro de mensajer&amp;#237;a en tiempo real Protocolo (RTMP). El servidor puede enviar y recibir datos hacia y desde el usuarios conectados. Los clientes relacionados entre s&amp;#237; pueden hacer llamadas de procedimiento remoto (RPC) en el lado del servidor y el servidor puede llamar a los m&amp;#233;todos espec&amp;#237;ficos en los clientes. Tambien nos brinda la posibilidad de trabajar con SharedObject, los que se usan para sincronizar complicadas estructuras de datos y los m&amp;#233;todos de llamada remota en varios clientes de una sola vez. Los objetos se transportan a trav&amp;#233;s de un NetConnection utilizando el Formato de mensaje de acci&amp;#243;n (AMF), que se maneja transparentemente por el servidor y cliente de flash.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;http://influxis.com/&quot;&gt;Influxis&lt;/a&gt; es una empresa especializada en Flash Media Server, ofrece los servicios de hosting, aplicaciones prefabricadas y recursos FMS para los usuarios, lo que hace que trabajar con FMS sea muy sencillo. La empresa me a dado una cuenta de prueba en sus servidores, es por esto que escribo este articulo, para mostrar lo facil que es trabajar con FMS en &lt;a href=&quot;http://influxis.com/&quot;&gt;Influxis&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;Las 10 Razones Mas Importantes Para Escoger Influxis (extraidas desde su sitio)&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;Expertos en FMS&lt;/strong&gt;: Influxis es el unico especialista en FMS en el mercado, apoyado por un equipo interno de Expertos y desarrolladores profesionales en Flash.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Asociados con Adobe&lt;/strong&gt;: Influxis tiene acceso a la ultima informacion sobre Adobe, a sus programas de beta y esta entre los primeros en ofrecer al mercado nuevos productos FMS.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Niveles de Tarifas&lt;/strong&gt;: Influxis ofrece plandes de precios para acomodar todos los niveles: desde experimentos en pequena escala hasta una red completa de servidores dedicados para las aplicaciones mas robustas.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Aplicaciones predesarrolladas:&lt;/strong&gt; Influxis ha desarrollado una biblioteca completa de aplicaciones personalizables para su uso. Todas ellas incluyen archivos .FLA, e incorporan URLs para vinculacion simple o puede incrustar el codigo directamente en su sitio web. Tambien puede descargar archivos facilmente y publicarlos a su sitio web. Todo esto disenado para que usted este funcional lo mas rapidamente posible.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Tambien somos desarrolladores:&lt;/strong&gt; Nuestro personal esta compuesto por desarrolladores FMS de tiempo completo ? comprendemos. Ofrecemos ayuda con modificaciones menores en sus aplicaciones. Tambien puede encontrar una pletora de recursos disponibles que incluyen Influxis Labs, Preguntas Frecuentes, Foros, Tutoriales, y nuestro personal interno de desarrollo.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Servicio al Cliente:&lt;/strong&gt; Influxis se esfuerza por ir mas alla y proveer personal amistoso y competente para ayudarlo ya sea a comenzar o a resolver un problema.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Facil de usar. Comience inmediatamente:&lt;/strong&gt; Su cuenta Influxis se activa inmediatamente al inscribirse, y el Asistente de asdministracion de archivos Influxis simplifica la organizacion de sus archivos, la publicacion de nuevas aplicaciones, y ud. tiene control total sobre la configuracion de su cuenta.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Red mundial:&lt;/strong&gt; Influxis tiene una red internacional con ubicaciones en EE.UU. y Europa para despliegue y streaming rapido a todas partes del mundo. Tambien podemos integrar nuestra red especializada de Flash Media Interactive Server con cualquier CDN de terceros o con nuestra solucion hibrida FMS/CDN.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Sin contratos:&lt;/strong&gt; Servicio mes a mes le provee flexibilidad para proyectos de corto plazo y campanas publicitarias. Tambien estan disponibles tarifas por evento.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Nuestros clientes confian en nosotros:&lt;/strong&gt; Nuestros clientes incluyen empresas Fortune 500, universidades de clase mundial, agencias de publicidad, servicios gubernamentales, deportes profesionales, desarrolladores y muchos mas que confian en nosotros para alojar sus aplicacione FMS.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Me gustaria agregar un punto a esta lista, algo que yo valoro mucho de &lt;a href=&quot;http://influxis.com/&quot; target=&quot;_blank&quot;&gt;Influxis&lt;/a&gt;, esto es que son uno de los mayores patrocinadores en toda la movida de flash, estan presentes si no en todos, en la mayoria de eventos relacionados a este sector.&lt;br /&gt;
Bueno todo esto a modo de introduccion, aca les dejo 2 ejemplos con FMS, el primero es una aplicacion pre-construida de las que ofrece &lt;a href=&quot;http://influxis.com/&quot; target=&quot;_blank&quot;&gt;Influxis&lt;/a&gt;, es un simple chat pero ambientado en una escena en 3D. El segundo ejemplo lo hice yo y es sobre el uso de los SharedObject con FMS, esta es la manera mas sencilla de mantener a los clientes comunicados entre si, son muy utiles y faciles de usar. Actualmente estoy desarrollando una pizarra interactiva, espero poder tenerla pronto. &lt;br /&gt;
Como ultimo tema me gustaria comentarles un poco mi experiencia con Influxis, yo de FMS no sabia nada de nada y me resulto muy facil comenzar a trabajar con el. Con el panel de control de Influxis se me hizo muy intuitivo el tema y ademas simplifica mucho algunos temas mas avanzados, tales como el control del server (subir y bajar apps, limitarlas a dominios especificos, etc), tambien es de gran ayuda tener las aplicaciones pre-construidas, ya que es posible descargar los fuentes. Ademas la disposicion del equipo de soporte es notable, es un placer involucrarse con ellos, por lo que esta demas decir que recomiendo &lt;a href=&quot;http://influxis.com/&quot; target=&quot;_blank&quot;&gt;Influxis&lt;/a&gt; como solucion de hosting para sus proyectos con FMS, tienen precios muy flexibles, por lo que me parece muy a la mano de todos (planes desde 6 dolares mensuales). Miren su sitio web y veran de que hablo.&lt;/p&gt;
&lt;h4&gt;Pre-Builded App Massiva3D&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://miguelmoraleda.com/examples/massiva3D/&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/massiva3D.jpg&quot; alt=&quot;massiva3D, 3D chat app&quot; title=&quot;massiva3D&quot; width=&quot;500&quot; height=&quot;318&quot; class=&quot;aligncenter size-full wp-image-375&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Ejemplo SharedObject&lt;/h4&gt;
&lt;p&gt;Deben abrir abrir el ejemplo 2 veces haciendo click en la imagen. Luego dragear los logos y veran como se mueven en ambas ventanas.&lt;br /&gt;
&lt;a href=&quot;http://miguelmoraleda.com/examples/FMSExample/&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/fmsExample.jpg&quot; alt=&quot;SharedObject Example&quot; title=&quot;fmsExample&quot; width=&quot;500&quot; height=&quot;374&quot; class=&quot;aligncenter size-full wp-image-368&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blog.miguelmoraleda.com//blog1.php/2010/02/15/trabajar-con-flash-media-server-en-influ&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p><center><a href="http://www.influxis.com/" target="_blank"><img src="http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/influxis.png" alt="influxis" title="influxis" width="183" height="183" class="alignnone size-full wp-image-347" /></a></center><br />
El servidor de medios Flash de Adobe (Adobe Flash Media Server (FMS)) permite streaming de video, audio y archivos de datos en tiempo real para aplicaciones interactivas desarrolladas en Flash. Es por esto que es ideal para desarrollar aplicaciones de colaboracion multiusuario, juegos multiplayer, video chat, etc.</p>
<blockquote><p>Flash Media Server es un concentrador de aplicaciones basadas en Flash para conectarse a un centro de mensajer&#237;a en tiempo real Protocolo (RTMP). El servidor puede enviar y recibir datos hacia y desde el usuarios conectados. Los clientes relacionados entre s&#237; pueden hacer llamadas de procedimiento remoto (RPC) en el lado del servidor y el servidor puede llamar a los m&#233;todos espec&#237;ficos en los clientes. Tambien nos brinda la posibilidad de trabajar con SharedObject, los que se usan para sincronizar complicadas estructuras de datos y los m&#233;todos de llamada remota en varios clientes de una sola vez. Los objetos se transportan a trav&#233;s de un NetConnection utilizando el Formato de mensaje de acci&#243;n (AMF), que se maneja transparentemente por el servidor y cliente de flash.</p></blockquote>
<p><a href="http://influxis.com/">Influxis</a> es una empresa especializada en Flash Media Server, ofrece los servicios de hosting, aplicaciones prefabricadas y recursos FMS para los usuarios, lo que hace que trabajar con FMS sea muy sencillo. La empresa me a dado una cuenta de prueba en sus servidores, es por esto que escribo este articulo, para mostrar lo facil que es trabajar con FMS en <a href="http://influxis.com/">Influxis</a>.</p>
<h4>Las 10 Razones Mas Importantes Para Escoger Influxis (extraidas desde su sitio)</h4>
<ul>
	<li><strong>Expertos en FMS</strong>: Influxis es el unico especialista en FMS en el mercado, apoyado por un equipo interno de Expertos y desarrolladores profesionales en Flash.</li>
	<li><strong>Asociados con Adobe</strong>: Influxis tiene acceso a la ultima informacion sobre Adobe, a sus programas de beta y esta entre los primeros en ofrecer al mercado nuevos productos FMS.</li>
	<li><strong>Niveles de Tarifas</strong>: Influxis ofrece plandes de precios para acomodar todos los niveles: desde experimentos en pequena escala hasta una red completa de servidores dedicados para las aplicaciones mas robustas.</li>
	<li><strong>Aplicaciones predesarrolladas:</strong> Influxis ha desarrollado una biblioteca completa de aplicaciones personalizables para su uso. Todas ellas incluyen archivos .FLA, e incorporan URLs para vinculacion simple o puede incrustar el codigo directamente en su sitio web. Tambien puede descargar archivos facilmente y publicarlos a su sitio web. Todo esto disenado para que usted este funcional lo mas rapidamente posible.</li>
	<li><strong>Tambien somos desarrolladores:</strong> Nuestro personal esta compuesto por desarrolladores FMS de tiempo completo ? comprendemos. Ofrecemos ayuda con modificaciones menores en sus aplicaciones. Tambien puede encontrar una pletora de recursos disponibles que incluyen Influxis Labs, Preguntas Frecuentes, Foros, Tutoriales, y nuestro personal interno de desarrollo.</li>
	<li><strong>Servicio al Cliente:</strong> Influxis se esfuerza por ir mas alla y proveer personal amistoso y competente para ayudarlo ya sea a comenzar o a resolver un problema.</li>
	<li><strong>Facil de usar. Comience inmediatamente:</strong> Su cuenta Influxis se activa inmediatamente al inscribirse, y el Asistente de asdministracion de archivos Influxis simplifica la organizacion de sus archivos, la publicacion de nuevas aplicaciones, y ud. tiene control total sobre la configuracion de su cuenta.</li>
	<li><strong>Red mundial:</strong> Influxis tiene una red internacional con ubicaciones en EE.UU. y Europa para despliegue y streaming rapido a todas partes del mundo. Tambien podemos integrar nuestra red especializada de Flash Media Interactive Server con cualquier CDN de terceros o con nuestra solucion hibrida FMS/CDN.</li>
	<li><strong>Sin contratos:</strong> Servicio mes a mes le provee flexibilidad para proyectos de corto plazo y campanas publicitarias. Tambien estan disponibles tarifas por evento.</li>
	<li><strong>Nuestros clientes confian en nosotros:</strong> Nuestros clientes incluyen empresas Fortune 500, universidades de clase mundial, agencias de publicidad, servicios gubernamentales, deportes profesionales, desarrolladores y muchos mas que confian en nosotros para alojar sus aplicacione FMS.</li>
</ul>
<p>Me gustaria agregar un punto a esta lista, algo que yo valoro mucho de <a href="http://influxis.com/" target="_blank">Influxis</a>, esto es que son uno de los mayores patrocinadores en toda la movida de flash, estan presentes si no en todos, en la mayoria de eventos relacionados a este sector.<br />
Bueno todo esto a modo de introduccion, aca les dejo 2 ejemplos con FMS, el primero es una aplicacion pre-construida de las que ofrece <a href="http://influxis.com/" target="_blank">Influxis</a>, es un simple chat pero ambientado en una escena en 3D. El segundo ejemplo lo hice yo y es sobre el uso de los SharedObject con FMS, esta es la manera mas sencilla de mantener a los clientes comunicados entre si, son muy utiles y faciles de usar. Actualmente estoy desarrollando una pizarra interactiva, espero poder tenerla pronto. <br />
Como ultimo tema me gustaria comentarles un poco mi experiencia con Influxis, yo de FMS no sabia nada de nada y me resulto muy facil comenzar a trabajar con el. Con el panel de control de Influxis se me hizo muy intuitivo el tema y ademas simplifica mucho algunos temas mas avanzados, tales como el control del server (subir y bajar apps, limitarlas a dominios especificos, etc), tambien es de gran ayuda tener las aplicaciones pre-construidas, ya que es posible descargar los fuentes. Ademas la disposicion del equipo de soporte es notable, es un placer involucrarse con ellos, por lo que esta demas decir que recomiendo <a href="http://influxis.com/" target="_blank">Influxis</a> como solucion de hosting para sus proyectos con FMS, tienen precios muy flexibles, por lo que me parece muy a la mano de todos (planes desde 6 dolares mensuales). Miren su sitio web y veran de que hablo.</p>
<h4>Pre-Builded App Massiva3D</h4>
<p><a href="http://miguelmoraleda.com/examples/massiva3D/" target="_blank"><img src="http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/massiva3D.jpg" alt="massiva3D, 3D chat app" title="massiva3D" width="500" height="318" class="aligncenter size-full wp-image-375" /></a></p>
<h4>Ejemplo SharedObject</h4>
<p>Deben abrir abrir el ejemplo 2 veces haciendo click en la imagen. Luego dragear los logos y veran como se mueven en ambas ventanas.<br />
<a href="http://miguelmoraleda.com/examples/FMSExample/" target="_blank"><img src="http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/fmsExample.jpg" alt="SharedObject Example" title="fmsExample" width="500" height="374" class="aligncenter size-full wp-image-368" /></a></p><div class="item_footer"><p><small><a href="http://blog.miguelmoraleda.com//blog1.php/2010/02/15/trabajar-con-flash-media-server-en-influ">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://blog.miguelmoraleda.com//blog1.php/2010/02/15/trabajar-con-flash-media-server-en-influ#comments</comments>
			<wfw:commentRss>http://blog.miguelmoraleda.com//blog1.php?tempskin=_rss2&#38;disp=comments&#38;p=76</wfw:commentRss>
		</item>
				<item>
			<title>Primeros pasos con HYPE</title>
			<link>http://blog.miguelmoraleda.com//blog1.php/2010/02/12/primeros-pasos-con-hype</link>
			<pubDate>Fri, 12 Feb 2010 18:26:12 +0000</pubDate>			<dc:creator>Miguel</dc:creator>
			<category domain="main">actionscript</category>
<category domain="alt">flash</category>			<guid isPermaLink="false">75@http://blog.miguelmoraleda.com//</guid>
						<description>&lt;h4&gt;Que es HYPE?&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://hype.joshuadavis.com/&quot;&gt;HYPE&lt;/a&gt; es un nuevo framework desarrollado por &lt;a href=&quot;http://www.joshuadavis.com/&quot;&gt;Joshua Davis&lt;/a&gt; y &lt;a href=&quot;http://twitter.com/waxpraxis&quot;&gt;Branden Hall&lt;/a&gt; que tiene como principal objetivo ayudar a los artistas graficos a volver a involucrarse con el codigo, ya que desde actionscript 3 y el enfoque de programacion orientada a objetos, es mucho mas dificil para estos desarrollar aunque sea cosas simples. HYPE brinda un conjunto de clases para el facil y rapido desarrollo de funcionalidades, tales como, sound analysis, object pooling, swarm behaviours, shape layout, grid layout y un extenso etc. &lt;br /&gt;
Claramente esto no limita a los programadores a usar HYPE, a mi modo de ver es un gran conjunto de utilidades, facilmente extendible y rehusable.&lt;/p&gt;
&lt;h4&gt;Descarga e instalacion&lt;/h4&gt;
&lt;p&gt;Primero que todo, deben &lt;a href=&quot;http://github.com/hype/hype/zipball/v1.1.1&quot;&gt;descargar&lt;/a&gt; la libreria, desde la &lt;a href=&quot;http://hype.joshuadavis.com/&quot;&gt;pagina oficial&lt;/a&gt; o directamente desde haciendo &lt;a href=&quot;http://github.com/hype/hype/zipball/v1.1.1&quot;&gt;click aqui&lt;/a&gt;, tambien pueden hacerlo desde el &lt;a href=&quot;http://github.com/hype/hype&quot;&gt;repositorio en github&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Para poder usarlo en nuestros proyectos hay dos formas, la primera que mencionare es el archivo MXP que se lo pueden instalar directamente a su Flash IDE usando &quot;Adobe Extension Manager CS4&quot;, yo la verdad es que no manejo mucho este tema pero esta explicado en la &lt;a href=&quot;http://hype.joshuadavis.com/installation/&quot;&gt;pagina de instalacion&lt;/a&gt;. La segunda forma (la que yo uso) es setear el path al source de la libreria en los &quot;source path&quot; del Flash IDE. (edit - preference - actionscript - Actionscript 3.0 settings) y listo, ya pueden usar HYPE en sus proyectos.&lt;/p&gt;
&lt;h4&gt;Descripcion rapida de algunas clases&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;BitmapCanvas&lt;/strong&gt;: Captura un DisplayObject en un Bitmap, esto nos permite dibujar en el Bitmap muy facilmente.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;FilterRhythm&lt;/strong&gt;: Aplica un array de filtros a un BitmapData con un ritmo especifico.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;DirectionalVibration&lt;/strong&gt;: Hace vibrar una propiedad en una direccion dada.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;ColorPool&lt;/strong&gt;: Permite manejar una lista de colores y colorear objetos con colores al azar desde el listado.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;GridLayout&lt;/strong&gt;: Permite crear una malla de manera simple.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;ObjectPool&lt;/strong&gt;: Crea y maneja pools de objetos.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Oscillator&lt;/strong&gt;: Oscila una propiedad con una onda especifica.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;ShapeLayout&lt;/strong&gt;: Permite posicionar objetos en una forma dada.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;SoundAnalyzer&lt;/strong&gt;: Facil manejo de las frecuencias de sonido.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Swarm&lt;/strong&gt;: Permite que lo objetos se muevan hacia un punto.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;MouseFollow&lt;/strong&gt;: Hace que un objeto dado siga al mouse&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Mi primer Ejemplo&lt;/h4&gt;
&lt;object&gt;
&lt;embed src=&quot;http://www.miguelmoraleda.com/examples/hype/Main.swf&quot; width=&quot;400&quot; height=&quot;350&quot; name=&quot;snow_header&quot; type=&quot;application/x-shockwave-flash&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;p&gt;&lt;a href=&quot;http://www.miguelmoraleda.com/examples/HypeExample.rar&quot;&gt;DESCARGAR EJEMPLO&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.miguelmoraleda.com/examples/hype/&quot;&gt;VER EJEMPLO FUERA DE ESTA WEB&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Links&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://stranskydesign.com/blog/hello-hype-what-is-hype-the-flash-as3-framework/&quot;&gt;http://stranskydesign.com/blog/hello-hype-what-is-hype-the-flash-as3-framework/&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://thesven.com/?tag=hype&quot;&gt;http://thesven.com/?tag=hype&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.georgiefurst.co.uk/blog/?p=254&quot;&gt;http://www.georgiefurst.co.uk/blog/?p=254&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://active.tutsplus.com/tutorials/workflow/introduction-to-the-hype-actionscript-3-0-framework/?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed:+Flashtuts+(Activetuts%2B)&quot;&gt;http://active.tutsplus.com/tutorials/workflow/introduction-to-the-hype-actionscript-3-0-framework/?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed:+Flashtuts+(Activetuts%2&lt;img src=&quot;http://blog.miguelmoraleda.com//rsc/smilies/icon_cool.gif&quot; alt=&quot;&amp;#66;&amp;#41;&quot; class=&quot;middle&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.vimeo.com/channels/hype&quot;&gt;Video channel at Vimeo&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blog.miguelmoraleda.com//blog1.php/2010/02/12/primeros-pasos-con-hype&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<h4>Que es HYPE?</h4>
<p><a href="http://hype.joshuadavis.com/">HYPE</a> es un nuevo framework desarrollado por <a href="http://www.joshuadavis.com/">Joshua Davis</a> y <a href="http://twitter.com/waxpraxis">Branden Hall</a> que tiene como principal objetivo ayudar a los artistas graficos a volver a involucrarse con el codigo, ya que desde actionscript 3 y el enfoque de programacion orientada a objetos, es mucho mas dificil para estos desarrollar aunque sea cosas simples. HYPE brinda un conjunto de clases para el facil y rapido desarrollo de funcionalidades, tales como, sound analysis, object pooling, swarm behaviours, shape layout, grid layout y un extenso etc. <br />
Claramente esto no limita a los programadores a usar HYPE, a mi modo de ver es un gran conjunto de utilidades, facilmente extendible y rehusable.</p>
<h4>Descarga e instalacion</h4>
<p>Primero que todo, deben <a href="http://github.com/hype/hype/zipball/v1.1.1">descargar</a> la libreria, desde la <a href="http://hype.joshuadavis.com/">pagina oficial</a> o directamente desde haciendo <a href="http://github.com/hype/hype/zipball/v1.1.1">click aqui</a>, tambien pueden hacerlo desde el <a href="http://github.com/hype/hype">repositorio en github</a>.</p>

<p>Para poder usarlo en nuestros proyectos hay dos formas, la primera que mencionare es el archivo MXP que se lo pueden instalar directamente a su Flash IDE usando "Adobe Extension Manager CS4", yo la verdad es que no manejo mucho este tema pero esta explicado en la <a href="http://hype.joshuadavis.com/installation/">pagina de instalacion</a>. La segunda forma (la que yo uso) es setear el path al source de la libreria en los "source path" del Flash IDE. (edit - preference - actionscript - Actionscript 3.0 settings) y listo, ya pueden usar HYPE en sus proyectos.</p>
<h4>Descripcion rapida de algunas clases</h4>
<ul>
	<li><strong>BitmapCanvas</strong>: Captura un DisplayObject en un Bitmap, esto nos permite dibujar en el Bitmap muy facilmente.</li>
	<li><strong>FilterRhythm</strong>: Aplica un array de filtros a un BitmapData con un ritmo especifico.</li>
	<li><strong>DirectionalVibration</strong>: Hace vibrar una propiedad en una direccion dada.</li>
	<li><strong>ColorPool</strong>: Permite manejar una lista de colores y colorear objetos con colores al azar desde el listado.</li>
	<li><strong>GridLayout</strong>: Permite crear una malla de manera simple.</li>
	<li><strong>ObjectPool</strong>: Crea y maneja pools de objetos.</li>
	<li><strong>Oscillator</strong>: Oscila una propiedad con una onda especifica.</li>
	<li><strong>ShapeLayout</strong>: Permite posicionar objetos en una forma dada.</li>
	<li><strong>SoundAnalyzer</strong>: Facil manejo de las frecuencias de sonido.</li>
	<li><strong>Swarm</strong>: Permite que lo objetos se muevan hacia un punto.</li>
	<li><strong>MouseFollow</strong>: Hace que un objeto dado siga al mouse</li>
</ul>
<h4>Mi primer Ejemplo</h4>
<object>
<embed src="http://www.miguelmoraleda.com/examples/hype/Main.swf" width="400" height="350" name="snow_header" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>
<p><a href="http://www.miguelmoraleda.com/examples/HypeExample.rar">DESCARGAR EJEMPLO</a><br />
<a href="http://www.miguelmoraleda.com/examples/hype/">VER EJEMPLO FUERA DE ESTA WEB</a></p>
<h4>Links</h4>
<p><a href="http://stranskydesign.com/blog/hello-hype-what-is-hype-the-flash-as3-framework/">http://stranskydesign.com/blog/hello-hype-what-is-hype-the-flash-as3-framework/</a><br />
<a href="http://thesven.com/?tag=hype">http://thesven.com/?tag=hype</a><br />
<a href="http://www.georgiefurst.co.uk/blog/?p=254">http://www.georgiefurst.co.uk/blog/?p=254</a><br />
<a href="http://active.tutsplus.com/tutorials/workflow/introduction-to-the-hype-actionscript-3-0-framework/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+Flashtuts+(Activetuts%2B)">http://active.tutsplus.com/tutorials/workflow/introduction-to-the-hype-actionscript-3-0-framework/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+Flashtuts+(Activetuts%2<img src="http://blog.miguelmoraleda.com//rsc/smilies/icon_cool.gif" alt="&#66;&#41;" class="middle" /></a><br />
<a href="http://www.vimeo.com/channels/hype">Video channel at Vimeo</a></p><div class="item_footer"><p><small><a href="http://blog.miguelmoraleda.com//blog1.php/2010/02/12/primeros-pasos-con-hype">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://blog.miguelmoraleda.com//blog1.php/2010/02/12/primeros-pasos-con-hype#comments</comments>
			<wfw:commentRss>http://blog.miguelmoraleda.com//blog1.php?tempskin=_rss2&#38;disp=comments&#38;p=75</wfw:commentRss>
		</item>
				<item>
			<title>Protegiendo tus SWF con secureSWF</title>
			<link>http://blog.miguelmoraleda.com//blog1.php/2010/02/08/protegiendo-tus-swf-con-secureswf</link>
			<pubDate>Mon, 08 Feb 2010 16:08:09 +0000</pubDate>			<dc:creator>Miguel</dc:creator>
			<category domain="alt">actionscript</category>
<category domain="main">flash</category>			<guid isPermaLink="false">74@http://blog.miguelmoraleda.com//</guid>
						<description>&lt;p&gt;&lt;a href=&quot;http://www.kindisoft.com/&quot;&gt;&lt;img class=&quot;alignleft size-full wp-image-263&quot; title=&quot;secureswf-150&quot; src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/secureswf-150.jpg&quot; alt=&quot;secureSWF&quot; width=&quot;150&quot; height=&quot;175&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Este es un tema que me preocupa bastante desde hace algun tiempo, sobre todo cuando hago trabajos freelance, ya que siempre estoy pensando que al mostrar los avances descompilaran el SWF y desapareceran. Bastante paranoico de mi parte pero no esta tan alejado de la realidad (posible). Afortunadamente nunca tuve algun problema al respecto, pero igualmente prefiero estar protegido al respecto. Ademas estos abusos tambien se usan con otros fines tales como el robo de ideas, busqueda de fallas de seguridad o exploits, etc. Tambien es un tema muy importante cuando tu aplicacion reparte premios con valor comercial, ya que es mas tentador aun el tema de conseguir algun beneficio de forma truculenta.&lt;/p&gt;

&lt;p&gt;Cualquiera que posea una copia de un descompilador de SWF puede mirar nuestro codigo actionscript. Tipicamente nos protegemos de este abuso agragando licencias al codigo, mecanismos de proteccion de copias y derechos de autor. Sin embargo esto solo nos cubre en el ambito legal. Pero cualquiera puede acceder a tu codigo pasa abusar de el, ya sea para extraer partes, encontrar fallas de seguridad, extraer ideas, etc.&lt;/p&gt;

&lt;p&gt;Actionscript es un lenguaje muy facil de descompilar, existen mas de 22 descompiladores hoy en dia. Esto no es una falla de dise&amp;#241;o en el lenguaje, es simplemente una realidad de los &lt;a href=&quot;http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_interpretado&quot;&gt;lenguajes interpretados&lt;/a&gt;, tales como Java, .NET, etc.&lt;/p&gt;

&lt;p&gt;La encriptacion del SWF (mas bien la &lt;a href=&quot;http://es.wikipedia.org/wiki/Ofuscaci%C3%B3n&quot;&gt;ofuscacion del codigo&lt;/a&gt;) hace que al descompilar nuestro SWF, el codigo sea confunso y dificil de entender. Cabe mencionar que no es una encriptacion real.&lt;/p&gt;

&lt;p&gt;Bueno por ultimo y para no extenderme mas, a pesar de toda la proteccion que nos brinda la &lt;a href=&quot;http://es.wikipedia.org/wiki/Ofuscaci%C3%B3n&quot;&gt;ofuscacion del codigo&lt;/a&gt; seguimos vulnerables ante la redistribucion ilegal de nuestra aplicacion, cualquiera puede descargar el SWF y publicarlo en otro sitio. Para solucionar esto &lt;a href=&quot;http://www.kindisoft.com/&quot;&gt;secureSWF&lt;/a&gt; tiene un sistema de proteccion de dominios (la pelicula solo funcionara dentro de los dominios que nosotros especifiquemos) y ademas un loader encriptado (genera un swf aparte que sera el cargador de nuestra pelicula, asigna nombres encriptados al swf y lo desencripta en tiempo de ejecucion haciendo mucho mas complejo el tema de descargar nuestro swf), la gracia de esto ultimo es protegernos de ataques de SWF rippers o grabbers, que van recolectando cuanto SWF encuentran.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.kindisoft.com/&quot;&gt;secureSWF&lt;/a&gt; es una de las mas sofisticadas herramientas para la &lt;a href=&quot;http://es.wikipedia.org/wiki/Ofuscaci%C3%B3n&quot;&gt;ofuscacion&lt;/a&gt; de Actionscript y es una buena solucion de proteccion para tus aplicaciones creadas con Flash y Flex.&lt;br /&gt;
Con &lt;a href=&quot;http://www.kindisoft.com/&quot;&gt;secureSWF&lt;/a&gt; estaras protegido contra los programas de descompilacion, prevendras la copia y redistribucion ilegal y te ayudara a incrementar la seguridad en tus aplicaciones. Cabe destacar que la interfaz del programa es muy intuitiva, por lo que se hace muy facil empezar a trabajar con el programa. Ademas la documentacion es excelente.&lt;/p&gt;
&lt;h3&gt;Que hace la encryptacion SWF de secureSWF&lt;/h3&gt;
	&lt;li&gt;Control Flow Obfuscation&lt;/li&gt;
	&lt;li&gt;Dynamic Code Wrapping&lt;/li&gt;
	&lt;li&gt;Statement-level Randomization&lt;/li&gt;
	&lt;li&gt;String Encryption&lt;/li&gt;
&lt;h3&gt;Que partes del codigo oculta la ofuscacion de secureSWF&lt;/h3&gt;
	&lt;li&gt;Packages (and internal namespaces for AS3)&lt;/li&gt;
	&lt;li&gt;Classes&lt;/li&gt;
	&lt;li&gt;Functions (getters and setters as well)&lt;/li&gt;
	&lt;li&gt;Variables (local and global variables for AS1 and AS2)&lt;/li&gt;
	&lt;li&gt;Handles Inheritance and Polymorphism&lt;/li&gt;
	&lt;li&gt;Dynamic Variables (even the ones done by AS2 eval)&lt;/li&gt;
	&lt;li&gt;Removes Function Parameters Names&lt;/li&gt;
	&lt;li&gt;Frame Labels&lt;/li&gt;
	&lt;li&gt;Symbol Instance Names&lt;/li&gt;
	&lt;li&gt;Button Names&lt;/li&gt;
	&lt;li&gt;Textfield Names&lt;/li&gt;
	&lt;li&gt;Edit Textfield Variables&lt;/li&gt;
	&lt;li&gt;SWF Metadata&lt;/li&gt;
	&lt;li&gt;ActionScript 3 Metadata&lt;/li&gt;

&lt;h3&gt;&lt;a href=&quot;http://www.kindisoft.com/secureSWF/getting-started.php&quot;&gt;Primeros pasos con secureSWF&lt;/a&gt;&lt;/h3&gt;
&lt;h3&gt;&lt;a href=&quot;http://www.kindisoft.com/secureSWF/help/v3.4/&quot;&gt;Manual secureSWF&lt;/a&gt;&lt;/h3&gt;
&lt;h3&gt;Demostracion de secureSWF&lt;/h3&gt;
&lt;p&gt;Solo a modo de ejemplo cree esta clase bastante sencilla para que vean el resultado de la encriptacion con &lt;a href=&quot;http://www.kindisoft.com/&quot;&gt;secureSWF&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Antes&lt;/h2&gt;
&lt;p class=&quot;amcode&quot;&gt;Code:&lt;/p&gt;&lt;div class=&quot;codeblock amc_code amc_long&quot;&gt;&lt;table&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;package&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;import flash.display.Sprite;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;import flash.display.StageAlign;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;import flash.display.StageQuality;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;import flash.display.StageScaleMode;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc8&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;public class Main extends Sprite&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc9&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc0&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;private var _draw:Sprite;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;public function Main()&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;super();&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;configStage();&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;createDraw();&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;testFor();&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc8&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc9&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc0&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;private function testFor():void&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;for(var i:int = 0; i &lt; 10; i++) &lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;trace(i);&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc8&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;private function createDraw():void&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc9&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc0&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;_draw = new Sprite();&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;addChild(_draw);&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;_draw.graphics.beginFill(0xff0000);&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;_draw.graphics.drawRect(0, 0, 100, 100);&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;_draw.graphics.endFill();&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;private function configStage():void&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc8&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc9&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;stage.scaleMode = StageScaleMode.NO_SCALE;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc0&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;stage.quality = StageQuality.BEST;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;stage.align = StageAlign.TOP_LEFT;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;&lt;h2&gt;Despues&lt;/h2&gt;
&lt;p class=&quot;amcode&quot;&gt;Code:&lt;/p&gt;&lt;div class=&quot;codeblock amc_code amc_long&quot;&gt;&lt;table&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;package&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;import flash.display.*;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;public class do extends Object&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;public function do(&amp;#160;&amp;#160;)&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc8&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc9&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;var _local_1:boolen;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc0&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;var _local_2 = false&lt;NULL&amp;param2;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;if( _local_2&amp;amp;&amp;amp;_local_1 )&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;if( _local_2 )&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;this.break();&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;if( _local_2 )&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc8&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc9&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;this.if();&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc0&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;if( _local_2&amp;amp;&amp;amp;_local_2 )&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;this. do();&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;return;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;private function if(&amp;#160;&amp;#160;):void&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc8&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;var _local_1:boolen;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc9&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;var _local_2 = ^===&lt;-^false++;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc0&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;if( _local_1 )&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; case = new Sprite();&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;if( _local_2&amp;amp;&amp;amp;this )&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;addChild(this. case);&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;if( _local_2&amp;amp;&amp;amp;_local_1 )&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc8&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc9&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;this. case.graphics.beginFill(16711680);&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc0&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;if( _local_1 )&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;_local_2 = 0&gt;0;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;drawRect(,this instanceof 0-0,100,100);&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;this. case.graphics.endFill();&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;return;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc8&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc9&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;private var&amp;#160;&amp;#160;case:Sprite;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc0&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;private function break(&amp;#160;&amp;#160;):void&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;var _local_1:boolen;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;var _local_2:Object;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;if( _local_2 )&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;stage.scaleMode = StageScaleMode.NO_SCALE;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc8&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;if( _local_2 )&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc9&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc0&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;stage.quality = StageQuality.BEST;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;if( 0-0||this )&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;stage.align = StageAlign.TOP_LEFT;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;return;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;private function&amp;#160;&amp;#160;do(&amp;#160;&amp;#160;):void&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc8&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc9&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;var _local_2 = true as param2&gt;=param2;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc0&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;var _local_3:boolen;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;var _local_1:int;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;while( _local_1&amp;lt;10 )&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc5&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;return;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc6&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc8&quot;&gt;&lt;div class=&quot;amc7&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;
Como veran el codigo queda hecho una locura, pero hace exactamente lo mismo que el original. Para este ejemplo, solo use la encriptacion standart, existen otras mas potentes y otras mas suaves. &lt;img src=&quot;http://blog.miguelmoraleda.com//rsc/smilies/icon_smile.gif&quot; alt=&quot;&amp;#58;&amp;#41;&quot; class=&quot;middle&quot; /&gt;, activando mas protecciones no podia descompilar el ejemplo, ya que el descompilador crasheaba... &lt;img src=&quot;http://blog.miguelmoraleda.com//rsc/smilies/icon_smile.gif&quot; alt=&quot;&amp;#58;&amp;#41;&quot; class=&quot;middle&quot; /&gt; muy bueno!!!&lt;br /&gt;
Bueno con este ejemplo cierro el articulo, espero les haya parecido interesante. Cualquier comentario o duda sera bienvenida.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blog.miguelmoraleda.com//blog1.php/2010/02/08/protegiendo-tus-swf-con-secureswf&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p><a href="http://www.kindisoft.com/"><img class="alignleft size-full wp-image-263" title="secureswf-150" src="http://as3.miguelmoraleda.com/wp-content/uploads/2010/02/secureswf-150.jpg" alt="secureSWF" width="150" height="175" /></a><br />
Este es un tema que me preocupa bastante desde hace algun tiempo, sobre todo cuando hago trabajos freelance, ya que siempre estoy pensando que al mostrar los avances descompilaran el SWF y desapareceran. Bastante paranoico de mi parte pero no esta tan alejado de la realidad (posible). Afortunadamente nunca tuve algun problema al respecto, pero igualmente prefiero estar protegido al respecto. Ademas estos abusos tambien se usan con otros fines tales como el robo de ideas, busqueda de fallas de seguridad o exploits, etc. Tambien es un tema muy importante cuando tu aplicacion reparte premios con valor comercial, ya que es mas tentador aun el tema de conseguir algun beneficio de forma truculenta.</p>

<p>Cualquiera que posea una copia de un descompilador de SWF puede mirar nuestro codigo actionscript. Tipicamente nos protegemos de este abuso agragando licencias al codigo, mecanismos de proteccion de copias y derechos de autor. Sin embargo esto solo nos cubre en el ambito legal. Pero cualquiera puede acceder a tu codigo pasa abusar de el, ya sea para extraer partes, encontrar fallas de seguridad, extraer ideas, etc.</p>

<p>Actionscript es un lenguaje muy facil de descompilar, existen mas de 22 descompiladores hoy en dia. Esto no es una falla de dise&#241;o en el lenguaje, es simplemente una realidad de los <a href="http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_interpretado">lenguajes interpretados</a>, tales como Java, .NET, etc.</p>

<p>La encriptacion del SWF (mas bien la <a href="http://es.wikipedia.org/wiki/Ofuscaci%C3%B3n">ofuscacion del codigo</a>) hace que al descompilar nuestro SWF, el codigo sea confunso y dificil de entender. Cabe mencionar que no es una encriptacion real.</p>

<p>Bueno por ultimo y para no extenderme mas, a pesar de toda la proteccion que nos brinda la <a href="http://es.wikipedia.org/wiki/Ofuscaci%C3%B3n">ofuscacion del codigo</a> seguimos vulnerables ante la redistribucion ilegal de nuestra aplicacion, cualquiera puede descargar el SWF y publicarlo en otro sitio. Para solucionar esto <a href="http://www.kindisoft.com/">secureSWF</a> tiene un sistema de proteccion de dominios (la pelicula solo funcionara dentro de los dominios que nosotros especifiquemos) y ademas un loader encriptado (genera un swf aparte que sera el cargador de nuestra pelicula, asigna nombres encriptados al swf y lo desencripta en tiempo de ejecucion haciendo mucho mas complejo el tema de descargar nuestro swf), la gracia de esto ultimo es protegernos de ataques de SWF rippers o grabbers, que van recolectando cuanto SWF encuentran.</p>

<p><a href="http://www.kindisoft.com/">secureSWF</a> es una de las mas sofisticadas herramientas para la <a href="http://es.wikipedia.org/wiki/Ofuscaci%C3%B3n">ofuscacion</a> de Actionscript y es una buena solucion de proteccion para tus aplicaciones creadas con Flash y Flex.<br />
Con <a href="http://www.kindisoft.com/">secureSWF</a> estaras protegido contra los programas de descompilacion, prevendras la copia y redistribucion ilegal y te ayudara a incrementar la seguridad en tus aplicaciones. Cabe destacar que la interfaz del programa es muy intuitiva, por lo que se hace muy facil empezar a trabajar con el programa. Ademas la documentacion es excelente.</p>
<h3>Que hace la encryptacion SWF de secureSWF</h3>
	<li>Control Flow Obfuscation</li>
	<li>Dynamic Code Wrapping</li>
	<li>Statement-level Randomization</li>
	<li>String Encryption</li>
<h3>Que partes del codigo oculta la ofuscacion de secureSWF</h3>
	<li>Packages (and internal namespaces for AS3)</li>
	<li>Classes</li>
	<li>Functions (getters and setters as well)</li>
	<li>Variables (local and global variables for AS1 and AS2)</li>
	<li>Handles Inheritance and Polymorphism</li>
	<li>Dynamic Variables (even the ones done by AS2 eval)</li>
	<li>Removes Function Parameters Names</li>
	<li>Frame Labels</li>
	<li>Symbol Instance Names</li>
	<li>Button Names</li>
	<li>Textfield Names</li>
	<li>Edit Textfield Variables</li>
	<li>SWF Metadata</li>
	<li>ActionScript 3 Metadata</li>

<h3><a href="http://www.kindisoft.com/secureSWF/getting-started.php">Primeros pasos con secureSWF</a></h3>
<h3><a href="http://www.kindisoft.com/secureSWF/help/v3.4/">Manual secureSWF</a></h3>
<h3>Demostracion de secureSWF</h3>
<p>Solo a modo de ejemplo cree esta clase bastante sencilla para que vean el resultado de la encriptacion con <a href="http://www.kindisoft.com/">secureSWF</a>.</p>
<h2>Antes</h2>
<p class="amcode">Code:</p><div class="codeblock amc_code amc_long"><table><tr class="amc_code_odd"><td class="amc_line"><div class="amc1"></div></td><td><code><span class="amc_default">package</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc2"></div></td><td><code><span class="amc_default">{</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc3"></div></td><td><code><span class="amc_default">&#160;&#160;import flash.display.Sprite;</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc4"></div></td><td><code><span class="amc_default">&#160;&#160;import flash.display.StageAlign;</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc5"></div></td><td><code><span class="amc_default">&#160;&#160;import flash.display.StageQuality;</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc6"></div></td><td><code><span class="amc_default">&#160;&#160;import flash.display.StageScaleMode;</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc7"></div></td><td><code>&nbsp;</code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc8"></div></td><td><code><span class="amc_default">&#160;&#160;public class Main extends Sprite</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc9"></div></td><td><code><span class="amc_default">&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc0"><div class="amc1"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;private var _draw:Sprite;</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc1"><div class="amc1"></div></div></td><td><code>&nbsp;</code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc2"><div class="amc1"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;public function Main()</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc3"><div class="amc1"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc4"><div class="amc1"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;super();</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc5"><div class="amc1"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;configStage();</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc6"><div class="amc1"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;createDraw();</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc7"><div class="amc1"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;testFor();</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc8"><div class="amc1"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;}</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc9"><div class="amc1"></div></div></td><td><code>&nbsp;</code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc0"><div class="amc2"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;private function testFor():void</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc1"><div class="amc2"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc2"><div class="amc2"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;for(var i:int = 0; i < 10; i++) </span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc3"><div class="amc2"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc4"><div class="amc2"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;trace(i);</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc5"><div class="amc2"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;}</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc6"><div class="amc2"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;}</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc7"><div class="amc2"></div></div></td><td><code>&nbsp;</code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc8"><div class="amc2"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;private function createDraw():void</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc9"><div class="amc2"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc0"><div class="amc3"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;_draw = new Sprite();</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc1"><div class="amc3"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;addChild(_draw);</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc2"><div class="amc3"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;_draw.graphics.beginFill(0xff0000);</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc3"><div class="amc3"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;_draw.graphics.drawRect(0, 0, 100, 100);</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc4"><div class="amc3"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;_draw.graphics.endFill();</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc5"><div class="amc3"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;}</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc6"><div class="amc3"></div></div></td><td><code>&nbsp;</code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc7"><div class="amc3"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;private function configStage():void</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc8"><div class="amc3"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc9"><div class="amc3"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;stage.scaleMode = StageScaleMode.NO_SCALE;</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc0"><div class="amc4"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;stage.quality = StageQuality.BEST;</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc1"><div class="amc4"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;stage.align = StageAlign.TOP_LEFT;</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc2"><div class="amc4"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;}</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc3"><div class="amc4"></div></div></td><td><code><span class="amc_default">&#160;&#160;}</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc4"><div class="amc4"></div></div></td><td><code><span class="amc_default">}</span></code></td></tr><br />
</table></div>
<p></p><h2>Despues</h2>
<p class="amcode">Code:</p><div class="codeblock amc_code amc_long"><table><tr class="amc_code_odd"><td class="amc_line"><div class="amc1"></div></td><td><code><span class="amc_default">package</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc2"></div></td><td><code><span class="amc_default">{</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc3"></div></td><td><code><span class="amc_default">&#160;&#160;import flash.display.*;</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc4"></div></td><td><code>&nbsp;</code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc5"></div></td><td><code><span class="amc_default">&#160;&#160;public class do extends Object</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc6"></div></td><td><code><span class="amc_default">&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc7"></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;public function do(&#160;&#160;)</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc8"></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc9"></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;var _local_1:boolen;</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc0"><div class="amc1"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;var _local_2 = false<NULL&param2;</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc1"><div class="amc1"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;if( _local_2&amp;&amp;_local_1 )</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc2"><div class="amc1"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc3"><div class="amc1"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;}</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc4"><div class="amc1"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;if( _local_2 )</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc5"><div class="amc1"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc6"><div class="amc1"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this.break();</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc7"><div class="amc1"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if( _local_2 )</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc8"><div class="amc1"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc9"><div class="amc1"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this.if();</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc0"><div class="amc2"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if( _local_2&amp;&amp;_local_2 )</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc1"><div class="amc2"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc2"><div class="amc2"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this. do();</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc3"><div class="amc2"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc4"><div class="amc2"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return;</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc5"><div class="amc2"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;}</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc6"><div class="amc2"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;private function if(&#160;&#160;):void</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc7"><div class="amc2"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc8"><div class="amc2"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;var _local_1:boolen;</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc9"><div class="amc2"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;var _local_2 = ^===<-^false++;</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc0"><div class="amc3"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;if( _local_1 )</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc1"><div class="amc3"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc2"><div class="amc3"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; case = new Sprite();</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc3"><div class="amc3"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if( _local_2&amp;&amp;this )</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc4"><div class="amc3"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc5"><div class="amc3"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc6"><div class="amc3"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;addChild(this. case);</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc7"><div class="amc3"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if( _local_2&amp;&amp;_local_1 )</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc8"><div class="amc3"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc9"><div class="amc3"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this. case.graphics.beginFill(16711680);</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc0"><div class="amc4"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if( _local_1 )</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc1"><div class="amc4"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc2"><div class="amc4"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;_local_2 = 0>0;</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc3"><div class="amc4"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;drawRect(,this instanceof 0-0,100,100);</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc4"><div class="amc4"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this. case.graphics.endFill();</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc5"><div class="amc4"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc6"><div class="amc4"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc7"><div class="amc4"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return;</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc8"><div class="amc4"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;}</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc9"><div class="amc4"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;private var&#160;&#160;case:Sprite;</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc0"><div class="amc5"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;private function break(&#160;&#160;):void</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc1"><div class="amc5"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc2"><div class="amc5"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;var _local_1:boolen;</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc3"><div class="amc5"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;var _local_2:Object;</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc4"><div class="amc5"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;if( _local_2 )</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc5"><div class="amc5"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc6"><div class="amc5"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;}</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc7"><div class="amc5"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;stage.scaleMode = StageScaleMode.NO_SCALE;</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc8"><div class="amc5"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;if( _local_2 )</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc9"><div class="amc5"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc0"><div class="amc6"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;stage.quality = StageQuality.BEST;</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc1"><div class="amc6"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if( 0-0||this )</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc2"><div class="amc6"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc3"><div class="amc6"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;stage.align = StageAlign.TOP_LEFT;</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc4"><div class="amc6"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc5"><div class="amc6"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return;</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc6"><div class="amc6"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;}</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc7"><div class="amc6"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;private function&#160;&#160;do(&#160;&#160;):void</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc8"><div class="amc6"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc9"><div class="amc6"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;var _local_2 = true as param2>=param2;</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc0"><div class="amc7"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;var _local_3:boolen;</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc1"><div class="amc7"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;var _local_1:int;</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc2"><div class="amc7"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;while( _local_1&lt;10 )</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc3"><div class="amc7"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;{</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc4"><div class="amc7"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;}</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc5"><div class="amc7"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;&#160;&#160;return;</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc6"><div class="amc7"></div></div></td><td><code><span class="amc_default">&#160;&#160;&#160;&#160;}</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc7"><div class="amc7"></div></div></td><td><code><span class="amc_default">&#160;&#160;}</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc8"><div class="amc7"></div></div></td><td><code><span class="amc_default">}</span></code></td></tr><br />
</table></div>
<p><br /><br />
Como veran el codigo queda hecho una locura, pero hace exactamente lo mismo que el original. Para este ejemplo, solo use la encriptacion standart, existen otras mas potentes y otras mas suaves. <img src="http://blog.miguelmoraleda.com//rsc/smilies/icon_smile.gif" alt="&#58;&#41;" class="middle" />, activando mas protecciones no podia descompilar el ejemplo, ya que el descompilador crasheaba... <img src="http://blog.miguelmoraleda.com//rsc/smilies/icon_smile.gif" alt="&#58;&#41;" class="middle" /> muy bueno!!!<br />
Bueno con este ejemplo cierro el articulo, espero les haya parecido interesante. Cualquier comentario o duda sera bienvenida.</p><div class="item_footer"><p><small><a href="http://blog.miguelmoraleda.com//blog1.php/2010/02/08/protegiendo-tus-swf-con-secureswf">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://blog.miguelmoraleda.com//blog1.php/2010/02/08/protegiendo-tus-swf-con-secureswf#comments</comments>
			<wfw:commentRss>http://blog.miguelmoraleda.com//blog1.php?tempskin=_rss2&#38;disp=comments&#38;p=74</wfw:commentRss>
		</item>
				<item>
			<title>Juego de autos con Unity3D (ahora gratis)</title>
			<link>http://blog.miguelmoraleda.com//blog1.php/2009/11/26/juego-de-autos-con-unity3d-ahora-gratis</link>
			<pubDate>Thu, 26 Nov 2009 15:50:36 +0000</pubDate>			<dc:creator>Miguel</dc:creator>
			<category domain="main">Unity3D</category>			<guid isPermaLink="false">72@http://blog.miguelmoraleda.com//</guid>
						<description>&lt;p&gt;&lt;a href=&quot;http://www.miguelmoraleda.com/examples/unity3D/carExample/&quot;&gt;&lt;img src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2009/11/carExample-unity3d.jpg&quot; alt=&quot;carExample-unity3d&quot; title=&quot;carExample-unity3d&quot; width=&quot;500&quot; height=&quot;248&quot; class=&quot;aligncenter size-full wp-image-228&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.miguelmoraleda.com/examples/unity3D/carExample/&quot;&gt;&lt;img src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2009/11/car-Example2-unity3d.jpg&quot; alt=&quot;car-Example2-unity3d&quot; title=&quot;car-Example2-unity3d&quot; width=&quot;500&quot; height=&quot;249&quot; class=&quot;aligncenter size-full wp-image-229&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.miguelmoraleda.com/examples/unity3D/carExample/&quot;&gt;&lt;img src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2009/11/car-Example3-unity3d.jpg&quot; alt=&quot;car-Example3-unity3d&quot; title=&quot;car-Example3-unity3d&quot; width=&quot;500&quot; height=&quot;250&quot; class=&quot;aligncenter size-full wp-image-230&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bueno una vez mas escribiendo sobre &lt;a href=&quot;http://unity3d.com/&quot; target=&quot;_blank&quot;&gt;Unity3D&lt;/a&gt;, la ultima novedad del engine es que ahora es gratuito. Asi que a los que esten interesados en el desarrollo de juegos les recomiendo bajarse el programa y comenzar a experimentar. &lt;/p&gt;

&lt;p&gt;Las imagenes de arriba corresponden a la version actual de un juego de autos que estoy desarrollando en mis tiempos libres. Por ahora solo es la pista, auto y aparece un auto fantasma luego de dar una vuelta. Tiene fallas y quedan muchisimas cosas por hacer, pero creo que va bien encaminado. Ahora estoy usando la version de prueba de &lt;a href=&quot;http://unity3d.com/&quot; target=&quot;_blank&quot;&gt;Unity3D Pro&lt;/a&gt;, lo que me permitio usar el sistema de sombras. Espero lo disfruten y cualquier sugerencia o comentario es bienvenido.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://miguelmoraleda.com/examples/unity3D/carExample/&quot; target=&quot;_blank&quot;&gt;VER EJEMPLO&lt;/a&gt;&lt;/p&gt;

&lt;div style=&quot;float:right; clear:both; margin:5px;&quot;&gt;

&lt;!-- Paste from here... --&gt;
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-8685425838841676&quot;;
/* 468x60, creado 4/03/09 para post Loader */
google_ad_slot = &quot;6544603975&quot;;
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;
&lt;!-- ...to here --&gt;

&lt;/div&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blog.miguelmoraleda.com//blog1.php/2009/11/26/juego-de-autos-con-unity3d-ahora-gratis&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p><a href="http://www.miguelmoraleda.com/examples/unity3D/carExample/"><img src="http://as3.miguelmoraleda.com/wp-content/uploads/2009/11/carExample-unity3d.jpg" alt="carExample-unity3d" title="carExample-unity3d" width="500" height="248" class="aligncenter size-full wp-image-228" /></a><br />
<a href="http://www.miguelmoraleda.com/examples/unity3D/carExample/"><img src="http://as3.miguelmoraleda.com/wp-content/uploads/2009/11/car-Example2-unity3d.jpg" alt="car-Example2-unity3d" title="car-Example2-unity3d" width="500" height="249" class="aligncenter size-full wp-image-229" /></a><br />
<a href="http://www.miguelmoraleda.com/examples/unity3D/carExample/"><img src="http://as3.miguelmoraleda.com/wp-content/uploads/2009/11/car-Example3-unity3d.jpg" alt="car-Example3-unity3d" title="car-Example3-unity3d" width="500" height="250" class="aligncenter size-full wp-image-230" /></a></p>

<p>Bueno una vez mas escribiendo sobre <a href="http://unity3d.com/" target="_blank">Unity3D</a>, la ultima novedad del engine es que ahora es gratuito. Asi que a los que esten interesados en el desarrollo de juegos les recomiendo bajarse el programa y comenzar a experimentar. </p>

<p>Las imagenes de arriba corresponden a la version actual de un juego de autos que estoy desarrollando en mis tiempos libres. Por ahora solo es la pista, auto y aparece un auto fantasma luego de dar una vuelta. Tiene fallas y quedan muchisimas cosas por hacer, pero creo que va bien encaminado. Ahora estoy usando la version de prueba de <a href="http://unity3d.com/" target="_blank">Unity3D Pro</a>, lo que me permitio usar el sistema de sombras. Espero lo disfruten y cualquier sugerencia o comentario es bienvenido.</p>

<p><a href="http://miguelmoraleda.com/examples/unity3D/carExample/" target="_blank">VER EJEMPLO</a></p>

<div style="float:right; clear:both; margin:5px;">

<!-- Paste from here... -->
<script type="text/javascript"><!--
google_ad_client = "pub-8685425838841676";
/* 468x60, creado 4/03/09 para post Loader */
google_ad_slot = "6544603975";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- ...to here -->

</div><div class="item_footer"><p><small><a href="http://blog.miguelmoraleda.com//blog1.php/2009/11/26/juego-de-autos-con-unity3d-ahora-gratis">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://blog.miguelmoraleda.com//blog1.php/2009/11/26/juego-de-autos-con-unity3d-ahora-gratis#comments</comments>
			<wfw:commentRss>http://blog.miguelmoraleda.com//blog1.php?tempskin=_rss2&#38;disp=comments&#38;p=72</wfw:commentRss>
		</item>
				<item>
			<title>Unity3D - explorando un poco mas</title>
			<link>http://blog.miguelmoraleda.com//blog1.php/2009/09/28/unity3d-explorando-un-poco-mas</link>
			<pubDate>Mon, 28 Sep 2009 13:47:53 +0000</pubDate>			<dc:creator>Miguel</dc:creator>
			<category domain="main">Unity3D</category>			<guid isPermaLink="false">71@http://blog.miguelmoraleda.com//</guid>
						<description>&lt;p&gt;Bueno el otro dia continue jugando un poco mas con unity3d, segui solamente la parte numero 1 del tutorial para hacer un fps. (&lt;a title=&quot;MiguelMoraleda - Unity3D Example&quot; href=&quot;http://unity3d.com/support/resources/tutorials/fpstutorial&quot; target=&quot;_blank&quot;&gt;ver tutorial&lt;/a&gt;). Hacer todo fue bastante sencillo e intuitivo. La interfaz de unity es muy amigable. Los modelos en 3D me los baje gratis de paginas de por ah&amp;#237;.&lt;/p&gt;

&lt;p&gt;Para exportarlos a unity, deben exportarlos con su programa favorito para el manejo de 3D(3ds max, maya, blender, cinema3d) a formato FBX. Yo use 3ds max. Luego en unity lo importan como un nuevo asset, con respecto a los materiales, unity3D genera perfectamente todos los materiales con contiene el modelo, pero lamentablemente la mayoria de texturas externas, tuve que importarlas a mano luego de pasar el modelo.&lt;/p&gt;

&lt;p&gt;Agregar los pocos funcionamientos que tiene el ejemplo me tomo mucho menos tiempo de lo que me tomo construir el mundo. Unity trae incorporado un asset llamado First Person Controller, este componente ya incorpora los movimientos del personaje con el teclado y el movimiento de camara con el mouse.  El resto es cosa de ver el link al tutorial original.&lt;/p&gt;

&lt;p&gt;Aca el resultado de mas menos 5 horas de trabajo.&lt;/p&gt;

&lt;p&gt;Debido al peso de los modelos, el ejemplo quedo medio pesado asi que paciencia si tienen mala coneccion &lt;img src=&quot;http://blog.miguelmoraleda.com//rsc/smilies/icon_smile.gif&quot; alt=&quot;&amp;#58;&amp;#41;&quot; class=&quot;middle&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.miguelmoraleda.com/examples/unity3D/fps&quot; target=&quot;_blank&quot;&gt;VER EJEMPLO&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.miguelmoraleda.com/examples/unity3D/fps&quot; target=&quot;_blank&quot;&gt;&lt;img class=&quot;size-full wp-image-211&quot; title=&quot;fps3&quot; src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2009/09/fps3.jpg&quot; alt=&quot;unity3D example 3&quot; width=&quot;600&quot; height=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.miguelmoraleda.com/examples/unity3D/fps&quot; target=&quot;_blank&quot;&gt;&lt;img class=&quot;size-full wp-image-209&quot; title=&quot;fps1&quot; src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2009/09/fps1.jpg&quot; alt=&quot;unity3D example 1&quot; width=&quot;600&quot; height=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.miguelmoraleda.com/examples/unity3D/fps&quot; target=&quot;_blank&quot;&gt;&lt;img class=&quot;size-full wp-image-210&quot; title=&quot;fps2&quot; src=&quot;http://as3.miguelmoraleda.com/wp-content/uploads/2009/09/fps2.jpg&quot; alt=&quot;unity3D example 2&quot; width=&quot;600&quot; height=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div style=&quot;float:right; clear:both; margin:5px;&quot;&gt;

&lt;!-- Paste from here... --&gt;
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-8685425838841676&quot;;
/* 468x60, creado 4/03/09 para post Loader */
google_ad_slot = &quot;6544603975&quot;;
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;
&lt;!-- ...to here --&gt;

&lt;/div&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blog.miguelmoraleda.com//blog1.php/2009/09/28/unity3d-explorando-un-poco-mas&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Bueno el otro dia continue jugando un poco mas con unity3d, segui solamente la parte numero 1 del tutorial para hacer un fps. (<a title="MiguelMoraleda - Unity3D Example" href="http://unity3d.com/support/resources/tutorials/fpstutorial" target="_blank">ver tutorial</a>). Hacer todo fue bastante sencillo e intuitivo. La interfaz de unity es muy amigable. Los modelos en 3D me los baje gratis de paginas de por ah&#237;.</p>

<p>Para exportarlos a unity, deben exportarlos con su programa favorito para el manejo de 3D(3ds max, maya, blender, cinema3d) a formato FBX. Yo use 3ds max. Luego en unity lo importan como un nuevo asset, con respecto a los materiales, unity3D genera perfectamente todos los materiales con contiene el modelo, pero lamentablemente la mayoria de texturas externas, tuve que importarlas a mano luego de pasar el modelo.</p>

<p>Agregar los pocos funcionamientos que tiene el ejemplo me tomo mucho menos tiempo de lo que me tomo construir el mundo. Unity trae incorporado un asset llamado First Person Controller, este componente ya incorpora los movimientos del personaje con el teclado y el movimiento de camara con el mouse.  El resto es cosa de ver el link al tutorial original.</p>

<p>Aca el resultado de mas menos 5 horas de trabajo.</p>

<p>Debido al peso de los modelos, el ejemplo quedo medio pesado asi que paciencia si tienen mala coneccion <img src="http://blog.miguelmoraleda.com//rsc/smilies/icon_smile.gif" alt="&#58;&#41;" class="middle" /></p>

<p><a href="http://www.miguelmoraleda.com/examples/unity3D/fps" target="_blank">VER EJEMPLO</a></p>

<p><a href="http://www.miguelmoraleda.com/examples/unity3D/fps" target="_blank"><img class="size-full wp-image-211" title="fps3" src="http://as3.miguelmoraleda.com/wp-content/uploads/2009/09/fps3.jpg" alt="unity3D example 3" width="600" height="500" /></a></p>

<p><a href="http://www.miguelmoraleda.com/examples/unity3D/fps" target="_blank"><img class="size-full wp-image-209" title="fps1" src="http://as3.miguelmoraleda.com/wp-content/uploads/2009/09/fps1.jpg" alt="unity3D example 1" width="600" height="500" /></a></p>

<p><a href="http://www.miguelmoraleda.com/examples/unity3D/fps" target="_blank"><img class="size-full wp-image-210" title="fps2" src="http://as3.miguelmoraleda.com/wp-content/uploads/2009/09/fps2.jpg" alt="unity3D example 2" width="600" height="500" /></a></p>

<!-- Adsense block #4 not displayed since it exceed the limit of 3 --><div class="item_footer"><p><small><a href="http://blog.miguelmoraleda.com//blog1.php/2009/09/28/unity3d-explorando-un-poco-mas">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://blog.miguelmoraleda.com//blog1.php/2009/09/28/unity3d-explorando-un-poco-mas#comments</comments>
			<wfw:commentRss>http://blog.miguelmoraleda.com//blog1.php?tempskin=_rss2&#38;disp=comments&#38;p=71</wfw:commentRss>
		</item>
				<item>
			<title>Encontrar la zona usada de una imagen</title>
			<link>http://blog.miguelmoraleda.com//blog1.php/2009/08/19/encontrar-la-zona-usada-de-una-imagen</link>
			<pubDate>Wed, 19 Aug 2009 19:59:27 +0000</pubDate>			<dc:creator>Miguel</dc:creator>
			<category domain="main">actionscript</category>
<category domain="alt">flash</category>			<guid isPermaLink="false">70@http://blog.miguelmoraleda.com//</guid>
						<description>&lt;p&gt;Este es un ejemplo de como encontrar la zona en uso de una image. Imaginen que tienen un png con un dibujo uniforme dentro y algunos bordes transparentes. Con este codigo pueden encontrar la minina area en uso para luego usar solo esa zona para lo que necesiten. Podrian facilmente con una aplicacion en Air guardar el corte como un png, asi la imagen estaria optimizada al tamanio minimo que necesita. O cualquier otra cosa que se les ocurra. Ojala le sirva a alguien.&lt;/p&gt;

&lt;p&gt;Saludos&lt;/p&gt;
&lt;p class=&quot;amcode&quot;&gt;Code:&lt;/p&gt;&lt;div class=&quot;codeblock amc_code amc_short&quot;&gt;&lt;table&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc1&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;//Create a color mask with a alpha tolerance value. (_alphaTolerance is the percent)&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc2&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;var maskTolerance:uint = Math.round((2.55) * (100 -_alphaTolerance)) &amp;lt;&amp;lt; 24;&amp;#160;&amp;#160;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_odd&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc3&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;//Get used zone&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;p&gt;&lt;/p&gt;&lt;tr class=&quot;amc_code_even&quot;&gt;&lt;td class=&quot;amc_line&quot;&gt;&lt;div class=&quot;amc4&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class=&quot;amc_default&quot;&gt;var usedZone:Rectangle = image.bitmapData.getColorBoundsRect(maskTolerance, maskTolerance, true);&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://www.miguelmoraleda.com/examples/findUsedZoneBitmap/&quot;&gt;VER EJEMPLO&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.miguelmoraleda.com/examples/FoundingUsedZoneofaImage.rar&quot;&gt;DESCARGAR EJEMPLO&lt;/a&gt;&lt;/p&gt;
&lt;!-- Adsense block #5 not displayed since it exceed the limit of 3 --&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blog.miguelmoraleda.com//blog1.php/2009/08/19/encontrar-la-zona-usada-de-una-imagen&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Este es un ejemplo de como encontrar la zona en uso de una image. Imaginen que tienen un png con un dibujo uniforme dentro y algunos bordes transparentes. Con este codigo pueden encontrar la minina area en uso para luego usar solo esa zona para lo que necesiten. Podrian facilmente con una aplicacion en Air guardar el corte como un png, asi la imagen estaria optimizada al tamanio minimo que necesita. O cualquier otra cosa que se les ocurra. Ojala le sirva a alguien.</p>

<p>Saludos</p>
<p class="amcode">Code:</p><div class="codeblock amc_code amc_short"><table><tr class="amc_code_odd"><td class="amc_line"><div class="amc1"></div></td><td><code><span class="amc_default">//Create a color mask with a alpha tolerance value. (_alphaTolerance is the percent)</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc2"></div></td><td><code><span class="amc_default">var maskTolerance:uint = Math.round((2.55) * (100 -_alphaTolerance)) &lt;&lt; 24;&#160;&#160;</span></code></td></tr>
<p></p><tr class="amc_code_odd"><td class="amc_line"><div class="amc3"></div></td><td><code><span class="amc_default">//Get used zone</span></code></td></tr>
<p></p><tr class="amc_code_even"><td class="amc_line"><div class="amc4"></div></td><td><code><span class="amc_default">var usedZone:Rectangle = image.bitmapData.getColorBoundsRect(maskTolerance, maskTolerance, true);</span></code></td></tr><br />
</table></div>
<p><a href="http://www.miguelmoraleda.com/examples/findUsedZoneBitmap/">VER EJEMPLO</a><br />
<a href="http://www.miguelmoraleda.com/examples/FoundingUsedZoneofaImage.rar">DESCARGAR EJEMPLO</a></p>
<!-- Adsense block #6 not displayed since it exceed the limit of 3 --><div class="item_footer"><p><small><a href="http://blog.miguelmoraleda.com//blog1.php/2009/08/19/encontrar-la-zona-usada-de-una-imagen">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://blog.miguelmoraleda.com//blog1.php/2009/08/19/encontrar-la-zona-usada-de-una-imagen#comments</comments>
			<wfw:commentRss>http://blog.miguelmoraleda.com//blog1.php?tempskin=_rss2&#38;disp=comments&#38;p=70</wfw:commentRss>
		</item>
			</channel>
</rss>

