<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Activ - Centro de Capacitación Autorizado por Adobe enfocado a Cursos de HTML5, jQuery, Javascript, CSS, Usabilidad, SEO, Mobile, Flex, Flash, ActionScript y demás tecnologías. &#187; animación</title>
	<atom:link href="http://activ.com.mx/tag/animacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://activ.com.mx</link>
	<description>Adobe Authorized Training Center</description>
	<lastBuildDate>Fri, 17 May 2013 15:50:51 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Uso de Particulas con Away3D</title>
		<link>http://activ.com.mx/uso-de-particulas-con-away3d/</link>
		<comments>http://activ.com.mx/uso-de-particulas-con-away3d/#comments</comments>
		<pubDate>Wed, 01 May 2013 18:59:53 +0000</pubDate>
		<dc:creator>jesus_macedo</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[animación]]></category>
		<category><![CDATA[articulos]]></category>

		<guid isPermaLink="false">http://activ.com.mx/?p=5581</guid>
		<description><![CDATA[La versión alfa de Away3D 4.1 incluye soporte para la creación de sistemas de partículas de alto rendimiento basados en GPU con un API poderoso y configurable. Se puede usar esta habilidad para implementar efectos increíbles en tus proyectos 3D. Este tutorial introduce las bases del API, incluyendo la clase de partículas geométricas y la [...]]]></description>
				<content:encoded><![CDATA[<p>La versión alfa de <strong>Away3D 4.1</strong> incluye soporte para la creación de sistemas de partículas de alto rendimiento basados en <strong>GPU</strong> con un API poderoso y configurable. Se puede usar esta habilidad para implementar <strong>efectos increíbles</strong> en tus proyectos <strong>3D</strong>.</p>
<p style="text-align:center">
<img src="http://activ.com.mx/wp-content/uploads/2013/05/09275301d960f897ace19dff0c1c45cd-150x150.jpeg" alt="Logo Away3D" width="150" height="150"  class="aligncenter size-thumbnail wp-image-5659" />
<p>
Este tutorial introduce las bases del API, incluyendo la clase de partículas geométricas y la función de inicialización de la animación para controlar la vida y comportamiento de las partículas.
</p>
<p><span id="more-5581"></span></p>
<h2>Partículas Geométricas</h2>
<p>Lo primero que se necesita para las partículas, es un <strong>conjunto de geometría</strong>. Cada elemento es un conjunto que representara un tipo de partícula. Se puede usar cualquier figura geométrica, incluyendo figuras geométricas primitivas proporcionadas por Away3D o figuras geométricas cargadas desde un archivo externo. Sin embargo, no se recomiendan las figuras con muchos vértices, ya que afectaran el rendimiento de la animación.</p>
<p>Puedes estar preguntándote porque las figuras están predefinidas en lugar de ser creadas al vuelo como otros sistemas de partículas. Esto es debido a las limitaciones impuestas al búfer de carga de vértices, en el cual si se agregan las figuras de las partículas de forma dinámica, necesitara ocurrir mucho más frecuentemente. Cargar un búfer de vértices conlleva a un costo de rendimiento, así que es una buena idea el reducir dichas cargas si es posible. Además, las figuras geométricas dinámicas tienen restricciones al compartir el búfer de vértices a través de diferentes instancias de la animación.</p>
<p>La demostración incluye archivos de ejemplo (que puedes <a href="http://download.macromedia.com/pub/developer/games/demoasfiles.zip" target="_blank">descargar aquí</a>) para este tutorial que usan CubeGeometry como el conjunto de elementos geométricos. Puedes encontrar este código de ejemplo en el archivo TheBasicTutorial.as:</p>
<pre>
var cube:Geometry = new CubeGeometry(10, 10, 10);
var geometrySet:Vector. = new Vector.;
for (var i:int = 0; i &lt; 1000; i++){
    geometrySet.push(cube);
}
</pre>
<p>El código anterior agrega 1000 cubos al conjunto geométrico. Si se requiere, se pueden mezclar diferentes tipos de figuras geométricas en el mismo conjunto geométrico.</p>
<p>Una vez que el conjunto está listo, se puede usar el API para convertir el conjunto en la partícula geométrica final.</p>
<pre>var particleGeometry:ParticleGeometry = ParticleGeometryHelper.generateGeometry(geometrySet);</pre>
<p>Ahora se tiene la instancia final de la partícula geométrica, lista para su animación.</p>
<h2>Tiempo de vida de la Partícula</h2>
<p>El siguiente paso es crear un conjunto de partículas de animación. Puede que ya estés familiarizado con el concepto del ciclo de vida del tiempo de vida de las partículas. En un sistema de partículas tradicional, una partícula tiene un tiempo de vida definido, a través del cual otras propiedades (color, posición, etc.) son controladas.</p>
<p>En Away3D, una partícula tiene una propiedad <i>startFrame</i> relacionada al tiempo del sistema, y una propiedad opcional de duración. (Si no se especifica la duración, entonces la partícula tendrá una duración infinita). La propiedad de retraso (también opcional) representa el tiempo de retraso entre el fin de la duración de una partícula y el inicio de la duración de otra. Cuando se usan estas propiedades, una partícula aparecerá en su tiempo de inicio, se mantendrá &#8220;viva&#8221; durante su tiempo de duración, y entonces desaparecerá en su tiempo de retraso.</p>
<p>Debido a que estas propiedades son fundamentales para los cálculos de tiempo dentro del código del GPU, se tiene que predefinir cuales serán utilizadas. El primer parámetro del constructor <b>ParticleAnimationSet</b> indica si se estarán utilizando la propiedad <i>duration</i> de la partícula. El segundo parámetro indica si se usara una línea de tiempo cíclica (de modo que una vez una partícula ha completado su ciclo, automáticamente lo comenzara una nueva). EL tercero indica si las partículas desaparecerán en el tiempo de retraso antes del reinicio de sus ciclos.</p>
<p>En este ejemplo, las tres propiedades han sido establecidas en <i>true</i>:</p>
<pre>var animationSet:ParticleAnimationSet = new ParticleAnimationSet(true, true, true);</pre>
<p>Es importante notar que no hay propiedades en el conjunto de animación. Si las hubiera, todas las partículas tendrían las mismas propiedades y aparecerían y desaparecerían al mismo tiempo. En vez de ello, se usa una función que establece cada propiedad en las partículas de manera separada. debido a que son locales para cada partícula y se establecen una sola vez, <i>startTime, duration,</i> y <i>delay</i> son conocidas como propiedades estáticas locales. La función que establece estas propiedades será invocada para cada partícula. Se puede identificar el índice de la partícula usando el valor <b>ParticleProperties::index</b>, y entonces se establecen los valores <i>ParticleProperties::startTime, ParticleProperties::duration</i> y <i>ParticleProperties::delay</i> para la partícula, por ejemplo:</p>
<pre>
animationSet.initParticleFunc = initParticleParam;
private function initParticleParam(prop:ParticleProperties):void {
    prop.startTime = prop.index * 0.005;
    prop.duration = 10;
    prop.delay = 5;
}</pre>
<p>El código anterior crear un conjunto de propiedades estáticas locales que harán que las partículas inicien su ciclo cada 5 milisegundos de diferencia, las mantendrá &#8220;vivas&#8221; por 10 segundos, y entonces las enviara a &#8220;dormir&#8221; por 5 segundos.</p>
<h2>Posición de la Partícula</h2>
<p>Otros sistemas de partículas tienen un emisor que se usa para controlar la posición de origen de cada partícula. El sistema de partículas de Away3D implementa la misma funcionalidad de una forma más efectiva a través de <i>comportamientos</i> (uno de los conceptos más importantes en el API de partículas).</p>
<p>La clase <i>ParticlePositionNode</i> puede controlar la posición para cada partícula en la instancia de ParticleGeometry. La naturaleza de su control está determinada a través de una propiedad en constructor de la clase. Esto toma tres valores diferentes:</p>
<ul>
<li><b>ParticlePropertiesMode.LOCAL_STATIC</b> (las partículas pueden tener diferentes propiedades iniciales para el comportamiento).</li>
<li><b>ParticlePropertiesMode.GLOBAL</b> (todas las partículas tienen las mismas propiedades iniciales).</li>
<li><b>ParticlePropertiesMode.LOCAL_DYNAMIC</b> (las partículas pueden tener diferentes propiedades que son controladas al vuelo).</li>
</ul>
<p>Los modos <i>LOCAL_STATIC</i> y <i>GLOBAL</i> pueden compartir recursos de GPU a través de instancias de la animación, resultando en alto rendimiento. Así que, es una buena idea usar estos dos modos tanto como sea posible.</p>
<p>Este ejemplo usa <i>ParticlePropertiesMode.LOCAL_STATIC</i>:</p>
<pre>animationSet.addAnimation(new ParticlePositionNode(ParticlePropertiesMode.LOCAL_STATIC));</pre>
<p>Esto controla el valor de posición a través de la función <i>initParticleFunc</i>:</p>
<pre>
private function initParticleFunc(prop:ParticleProperties):void {
    prop.startTime = prop.index * 0.005;
    prop.duration = 10;
    prop.delay = 5;
    //calculate the original position of every particle.
    var percent:Number = prop.index / prop.total;
    var r:Number = percent * 1000;
    var x:Number = r*Math.cos(percent * Math.PI * 2 * 20);
    var z:Number = r*Math.sin(percent * Math.PI * 2 * 20);
    param[ParticlePositionNode.POSITION_VECTOR3D] = new Vector3D(x, 0, z);
}</pre>
<p>Antes de poder visualizar el efecto, se tiene que crear el material, mesh, y el objeto animador para las partículas. Esto toma el mismo enfoque que otras formas de animar en Away3D.</p>
<pre>
//create material, mesh and animator
var material:ColorMaterial = new ColorMaterial(0xff0000);
var particleMesh:Mesh = new Mesh(particleGeometry, material);
var animator:ParticleAnimator = new ParticleAnimator(animationSet);
particleMesh.animator = animator;
animator.start();
_view.scene.addChild(particleMesh);</pre>
<p style="text-align: center"><a href="http://download.macromedia.com/pub/developer/games/demos/preview.html"><img src="http://activ.com.mx/wp-content/uploads/2013/04/away3d-particle-introduction-fig01.jpg" alt="Particulas con Away3D" /></a></p>
<p>(click en la imagen para lanzar ejemplo)</p>
<h2>Velocidad de la Partícula</h2>
<p>Ahora ya se está listo para hacer que las partículas se muevan. Para esto, se necesitara utilizar otro comportamiento, el <i>ParticleVelocityNode</i>, el cual es un nodo de la animación de la partícula usado para establecer la velocidad inicial de la partícula.</p>
<p>Ya sabes que se debería estar usando ambos modos <i>LOCAL_STATIC</i> o <i>GLOBAL</i> tanto como sea posible. Pero, ¿cuál es mejor para esta aplicación? Internamente, el modo <i>LOCAL_STATIC</i> usa una corriente de registros para pasar los datos al GPU, de modo que los datos pueden ser representados por partícula. Sin embargo, <i>GLOBAL</i> usa registros constantes para pasar los datos por comportamiento. El número de corrientes de registros disponibles es más bajo que el número de registros constantes, y las corrientes de registros requieren más datos y más tiempo de inicialización. Así que como regla, deberías optar por el modo <i>GLOBAL</i> cuando sea posible.</p>
<p>En este caso, el objetivo es tener todas las partículas moviéndose con la misma velocidad, así que se puede usar el modo <i>ParticlePropertiesMode.GLOBAL</i>:</p>
<pre>
animationSet.addAnimation(new ParticleVelocityNode(ParticlePropertiesMode.GLOBAL, new Vector3D(0, 50, 0)));</pre>
<p>Así luce el resultado:</p>
<p style="text-align: center"><a href="http://download.macromedia.com/pub/developer/games/demos/TheBasicTutorial.html"><img src="http://activ.com.mx/wp-content/uploads/2013/04/away3d-particle-introduction-fig02.jpg" alt="Particulas con Away3D" /></a></p>
<p>(click en la imagen para lanzar ejemplo)</p>
<h2>A dónde ir desde aquí</h2>
<p>Has visto como crear una partícula geométrica, como establecer el tiempo de inicio y las propiedades de posición en partículas individuales, y cómo hacer que se muevan. Por supuesto, el API tiene muchas más características que las que se cubrieron aquí, pero ahora tienes un buen punto de partida desde el cual se pueden crear efectos impresionantes! Solo como un ejemplo, puedes crear el siguiente efecto usando las únicas características descritas en este tutorial:</p>
<p style="text-align: center"><a href="http://download.macromedia.com/pub/developer/games/demos/TheAdvancedDemo.html"><img src="http://activ.com.mx/wp-content/uploads/2013/04/away3d-particle-introduction-fig03.jpg" alt="Ejemplo" /></a></p>
<p>(click en la imagen para lanzar ejemplo)</p>
<p>Aquí hay algunos recursos que puedes usar para continuar aprendiendo acerca de Away3dD:</p>
<ul>
<li><a href="http://www.adobe.com/devnet/flashplayer/articles/creating-games-away3d.html">Creando juegos 3D y aplicaciones con Away3D y Stage 3D &#8211; Parte 1: Configurando un proyecto de 3D en 30 minutos</a></li>
<li><a href="http://www.adobe.com/devnet/flashplayer/articles/away3d-starling-interoperation.html">Interoperando Away3D y Starling</a></li>
<li><a href="http://www.adobe.com/devnet/flashplayer/articles/away3d-autodesk3dsmax.html">Creando una animación 3D interactiva con Away3D y Autodesk 3ds Max</a></li>
<li><a href="http://away3d.com/documentation/">Referencia y documentacion del API de Away3D</a></li>
</ul>
<p>Recuerda que en Activ tenemos un <a href="http://activ.com.mx/cursos/interactive/actionscript/" title="Curso de AS3" target="_blank">curso de ActionScript</a> que te ayudará a sacarle más aprovecho a Away3D</p>
<p>La versión original de este artículo está publicada en <a href="http://www.adobe.com/devnet/games/articles/away3d-particle-introduction.edu.html">Adobe Devnet</a> bajo licencia Creative Commons, fue traducido y adaptado en nuestro blog por <a href="http://twitter.com/jesus_macedo">Jesús Macedo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://activ.com.mx/uso-de-particulas-con-away3d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deconstrucción del sitio HTML5 theexpressiveweb.com</title>
		<link>http://activ.com.mx/deconstruccion-html5-theexpressiveweb/</link>
		<comments>http://activ.com.mx/deconstruccion-html5-theexpressiveweb/#comments</comments>
		<pubDate>Thu, 22 Nov 2012 17:27:49 +0000</pubDate>
		<dc:creator>jesus_macedo</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[animación]]></category>
		<category><![CDATA[articulos]]></category>
		<category><![CDATA[diseño web]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://activ.com.mx/?p=5024</guid>
		<description><![CDATA[Recientemente hemos lanzado la versión beta de un nuevo sitio en el que hemos estado trabajando, llamado theexpressiveweb.com. Este es un proyecto que hemos hecho junto con la ayuda de Big Spaceship, con el objetivo de crear a la vez un recurso y un showcase que refleje algunas de las características más creativas y expresivas [...]]]></description>
				<content:encoded><![CDATA[<p>Recientemente hemos lanzado la versión beta de un nuevo sitio en el que hemos estado trabajando, llamado <a href="http://beta.theexpressiveweb.com/">theexpressiveweb.com</a>. Este es un proyecto que hemos hecho junto con la ayuda de <a href="http://www.bigspaceship.com/">Big Spaceship</a>, con el objetivo de crear a la vez un recurso y un showcase que refleje algunas de las características más creativas y expresivas que se agregan a la web de hoy en día.</p>
<p style="text-align: center"><img src="http://activ.com.mx/wp-content/uploads/2012/11/expressiveweb.jpg" alt="sitio" width="400" height="200" /></p>
<p>Además de destacar y ofrecer información de doce nuevas características en HTML5 y CSS3, el sitio mismo hace un uso amplio de nuevas características como <a href="http://beta.theexpressiveweb.com/#!/css3-transitions">transiciones CSS3</a>, <a href="http://beta.theexpressiveweb.com/#!/css3-transforms">transformaciones CSS3</a>, <a href="http://beta.theexpressiveweb.com/#!/html5-web-storage">almacenamiento web</a> y mucho más para brindar un recurso visualmente atractivo para aprender más acerca de HTML5 y CSS3.</p>
<p><span id="more-5024"></span><br />
El sitio destaca las siguientes características:</p>
<ul>
<li><a href="http://beta.theexpressiveweb.com/#!/css3-animations">Animación CSS3</a></li>
<li><a href="http://beta.theexpressiveweb.com/#!/css3-gradients">Gradientes CSS3</a></li>
<li><a href="http://beta.theexpressiveweb.com/#!/css3-media-queries">Media Queries CSS3</a></li>
<li><a href="http://beta.theexpressiveweb.com/#!/css3-shadows">Sombras CSS3</a></li>
<li><a href="http://beta.theexpressiveweb.com/#!/css3-transforms">Transformaciones CSS3</a></li>
<li><a href="http://beta.theexpressiveweb.com/#!/css3-transitions">Transiciones CSS3</a></li>
<li><a href="http://beta.theexpressiveweb.com/#!/css3-web-fonts">Fuentes Web CSS3</a></li>
<li><a href="http://beta.theexpressiveweb.com/#!/html5-audio">Audio HTML5</a></li>
<li><a href="http://beta.theexpressiveweb.com/#!/html5-canvas">Canvas HTML5</a></li>
<li><a href="http://beta.theexpressiveweb.com/#!/html5-forms">Formularios HTML5</a></li>
<li><a href="http://beta.theexpressiveweb.com/#!/html5-video">Video HTML5</a></li>
<li><a href="http://beta.theexpressiveweb.com/#!/html5-web-storage">Almacenamiento Web</a></li>
</ul>
<p>Cada página de cada característica contiene:</p>
<ul>
<li>Un demo de la característica.</li>
<li>Datos del soporte del navegador.</li>
<li>Enlaces a ejemplos en los que se usa esa característica.</li>
<li>Enlaces a recursos y tutoriales más a fondo.</li>
<li>Detección y estrategias de reserva de la característica.</li>
</ul>
<p style="text-align: center"><img src="http://activ.com.mx/wp-content/uploads/2012/11/fig02.jpg" alt="categorias" width="400" height="245" /></p>
<p>El objetivo es brindar una rápida introducción y comprendimiento de las nuevas características, proporcionar información y enlaces para que los diseñadores y desarrolladores puedan obtener una comprensión más profunda acerca de qué trata la característica, para qué puede ser utilizada y cómo utilizarla.</p>
<h2>¿Por qué beta?</h2>
<p>¿Entonces por qué este sitio fue lanzado como una versión beta? Bueno, la respuesta simple es que aún hay algunos errores en el sitio, particularmente en navegadores viejos y algunos dispositivos. A pesar de esto, hemos decidido lanzar el sitio como beta, para compartir los recursos e información con la comunidad, compartir algunas de las lecciones que hemos aprendido desarrollando el sitio, y obtener retroalimentación de esto.</p>
<p>Cuando comenzamos el desarrollo del sitio un par de meses atrás, diseñamos un plan ambicioso para un sitio que aprovecha y destaca una amplia gama de características de vanguardia. En efecto, y en retrospectiva, probablemente fuimos demasiado ambiciosos en nuestro alcance. Además de hacer frente a los problemas normales a través de los navegadores al hacer desarrollo web, ahora teníamos que lidiar con una gran cantidad de funcionalidad del núcleo del sitio que no era soportada consistentemente (o en su totalidad) entre los navegadores. Mientras que este es un problema particular en navegadores viejos, aún fue un problema para la mayoría de los navegadores actuales. Por ejemplo, el sitio usa transiciones CSS3 para animar las transiciones de las páginas, una característica con la cual <a href="http://caniuse.com/css-transitions">no es compatible</a> la versión actual de Internet Explorer 9.</p>
<p>Podríamos haber elegido soportar únicamente los navegadores más actuales, pero sentimos que incluso los demos de las características no serían soportados, los recursos y el contenido listado en cada página aún serían valiosos para los desarrolladores y diseñadores. Por lo tanto, el sitio se ejecuta en navegadores viejos como Internet Explorer 7, aunque la mayoría de las características que se destacan, no son compatibles.</p>
<p>Por supuesto, lidiar con las diferencias entre navegadores es una realidad del desarrollo web. Necesitas desarrollar con esto en mente, además de desarrollar estrategias de reserva para cuando una característica requerida no sea soportada. Sin embargo, en nuestro caso, ya que estábamos intentando destacar específicamente las nuevas características, tuvimos que lidiar con más problemas de implementación y soporte de los navegadores de un sitio habitual.</p>
<h2>Lecciones aprendidas</h2>
<p>Así que, ¿Cuáles son algunas de las lecciones que hemos aprendido al crear un sitio que hace un uso extenso de nuevas características de HTML5 y CSS3?</p>
<h3>Decidir con anticipación si se soportaran los navegadores viejos</h3>
<p>Soportar los navegadores viejos cuando se trabaja con nuevas características agrega un nivel adicional de complejidad al proyecto. Las nuevas características que agregues, requerirán de más tiempo de implementación y depuración para desarrollar una solución de reserva para los navegadores viejos.</p>
<p>Como mínimo, asegúrate de tener un sólido entendimiento de lo bien que se degradan las nuevas características. Por ejemplo, si las <a href="http://beta.theexpressiveweb.com/#!/css3-web-fonts">fuentes web</a> no están disponibles, entonces puedes fácilmente retroceder a una fuente incorporada. Sin embargo, si las <a href="http://beta.theexpressiveweb.com/#!/css3-animations">transiciones CSS3</a> son cruciales para tu sitio, entonces puede que tengas que hacer trabajo adicional para implementar las animaciones vía JavaScript para situaciones donde las animaciones CSS no son soportadas.</p>
<p>Si decides no soportar los navegadores viejos, entonces quizá quieras considerar el reducir el número de nuevas características en que se basa tu sitio.</p>
<h3>Utiliza en tu sitio únicamente las nuevas características de HTML5/CSS3 esenciales</h3>
<p>Para cada nueva característica de vanguardia que uses en tu proyecto, tendrás que considerar el tiempo de desarrollo y el costo de cada uno de los siguientes:</p>
<ul>
<li>Implementar una estrategia de reserva para navegadores que no soportan la característica.</li>
<li>Lidiar con diferencias en las implementaciones de la característica entre los navegadores que no soportan la característica.</li>
<li>Estar preparado para nuevas versiones de los navegadores y para cambiar las implementaciones de la característica (más información abajo).</li>
</ul>
<p>Esto es especialmente cierto cuando se apunta a navegadores viejos que no soportan algunas de las características.</p>
<p>Esto no sugiere que no deberías usar las nuevas características, pero necesitaras ser consciente de los costos de desarrollo y mantenimiento que puede acarrear. Al centrarse únicamente en las características esenciales para el sitio, puedes ayudar a reducir el impacto de los elementos anteriores.</p>
<h3>Plan de más mantenimiento después del lanzamiento</h3>
<p>Esto es algo que nos tomó por sorpresa. Si estás construyendo un sitio que hace uso extenso de nuevas características de HTML5 y CSS3, para su mantenimiento necesitas planear tener mayores recursos de los normales.</p>
<p>Esto porque HTML5 y CSS3 consisten relativamente en nuevas características que no necesariamente han sido estandarizadas. Debido a que son nuevas, las implementaciones de los navegadores pueden (y lo harán) cambiar entre versiones.</p>
<p>Desafortunadamente, descubrimos esto de la forma difícil. Apple lanzó Safari 5.1 cerca de una semana antes del lanzamiento del sitio, y este lanzamiento termino rompiendo un par de cosas en nuestro sitio. Cuanto más tiempo pasa después del lanzamiento de tu sitio, habrá más lanzamientos de navegadores, y así lo más probable es que tu sitio se rompa. Por supuesto, esto se aplica a cualquier contenido web, pero dado que estas son nuevas características, es un problema en particular cuando se usan algunas de las nuevas funcionalidades de HTML5 y CSS3.</p>
<h3>El rendimiento no es sólo acerca de JavaScript</h3>
<p>Cuando empezamos este proyecto, nuestra preocupación principal era el rendimiento en torno a las diferencias en la ejecución de JavaScript entre navegadores (especialmente los viejos). Sin embargo, cuando empezamos a implementar algunas de las transiciones de CSS3 para animaciones de transición de página, tuvimos que lidiar con diferencias en el rendimiento de las animaciones entre navegadores.</p>
<p>Así como más y más sitios web utilizan motion graphics, esto llegara a ser un problema importante para los creadores de contenido. Por ejemplo, en el caso de transiciones CSS3, fueron dos causas primarias de las diferencias.</p>
<p>La primera, algunos navegadores aceleran las transiciones CSS3 con el uso del hardware, lo cual puede brindar muy buen rendimiento a la animación. Sin embargo, no todos los navegadores lo hacen. En nuestro caso, el rendimiento de la animación fue el mismo, pero el uso del CPU puede ser significativamente mayor que cuando las transiciones no eran aceleradas.</p>
<p>La segunda, animar el contenido en los dispositivos puede tener perfiles de desempeño dramáticamente diferentes. No solo entre navegadores de escritorio y dispositivos, sino entre los diferentes dispositivos. Por ejemplo, encontramos que para nuestro proyecto el iPad de Apple brinda un mejor desempeño de animación que el de la XOOM de Motorola.</p>
<p>La clave es comprender cuáles son los límites de los motion graphics en particular, y cuando se degrada el rendimiento a un punto en que necesitas considerar la implementación de una solución de reserva para una animación menos intensa. Este límite cambiara de proyecto en proyecto.</p>
<p>En el caso de theexpressiveweb.com, cuando un navegador o un dispositivo no puede ejecutar la animación suavemente, el sitio cambia a una transición menos intensa que construye los gráficos y los hace aparecer, lo opuesto a animarlos desde el lado.</p>
<h3>No muevas demasiadas cosas a la vez</h3>
<p>Esta es muy simple, pero como una regla general, mientras se animen menos cosas simultáneamente, las animaciones se realizarán más suavemente.</p>
<p>En theexpressiveweb.com, cuando cambias las páginas pasan un par de cosas:</p>
<ul>
<li>La navegación de la página y los elementos de información se animan al salir</li>
<li>La página de ejemplo se construye fuera</li>
<li>La navegación de la página y los elementos de información se animan al entrar</li>
<li>Los recursos de los demos se animan al entrar</li>
</ul>
<p>Algunos navegadores podrían manejar todos estos elementos animándose al mismo tiempo. Sin embargo, algunos navegadores tienen problemas al animar todos los elementos suavemente. Nosotros arreglamos esto al animar primero los elementos de navegación y el contenido y entonces la transición de la página de demostración.</p>
<p>Esto no solo proporciona animaciones suaves, también provee al usuario con información y contenido anterior, ambos de los cuales hacen que el sitio se sienta mucho más responsivo.</p>
<h3>Tener una estrategia de reserva para características clave es una parte fundamental del plan de desarrollo</h3>
<p>Deberías tener una estrategia de reserva para cualquier característica nueva de HTML5/CSS3 que estés utilizando. Esto es particularmente importante para características que son clave para el sitio o para la experiencia que estás intentando crear. Para estas características, necesitas desarrollar la estrategia de reserva desde el principio como una parte clave del desarrollo del sitio y el proceso de diseño.</p>
<p>Para theexpressiveweb.com, hicimos un uso extenso de transiciones CSS3 para animar las transiciones de las páginas. Estos motion graphics son una parte clave para la experiencia del sitio. Debido a que son clave, desde el principio tuvimos que desarrollar el sitio con una estrategia de reserva en mente.</p>
<p>Como mencione anteriormente, si las transiciones CSS3 no son soportadas (o no se realizan bien), entonces el sitio vuelve a animaciones de transiciones más simples. Esto aún brinda una buena (aunque ligeramente degradada) experiencia para el usuario.</p>
<p>Pudimos haber vuelto a animar las transiciones usando JavaScript, sin embargo, encontramos que las transiciones basadas en JavaScript no se realizan bien en algunos casos (especialmente en dispositivos). Ya que todavía tendríamos que implementar una transición más simple para estos escenarios, decidimos no implementar una reserva a través de JavaScript.</p>
<h3>Diseñar y desarrollar con móvil en mente</h3>
<p>Mientras que mantener en mente los navegadores móviles es importante cuando se diseñan sitios regulares, es particularmente importante cuando se diseñan y desarrollan sitios que usan motion graphics. Además de tener que lidiar con las diferencias en las resoluciones de los dispositivos y los métodos de entrada, también debes poner atención al rendimiento de las animaciones.</p>
<p>En general, los navegadores móviles proveen mejor soporte para las nuevas características, y brindan buen soporte para la aceleración de hardware para transiciones, transformaciones y animaciones de CSS3. Sin embargo, cualquier movimiento y animación tiene la posibilidad de agravar severamente al navegador y al dispositivo. Comprender estas limitaciones a tiempo en el ciclo de desarrollo hará tu proceso de desarrollo mucho más suave.</p>
<h3>Usa Modernizr</h3>
<p>No hay mucho que decir aquí. Si estas usando nuevas características, necesitarás asegurarte de que el navegador las soporta. La librería <a href="http://modernizr.com/">Modernizr</a> es sin duda la forma más robusta y fácil para detectar cuáles características soporta el navegador.</p>
<p>Si necesitas revisar frecuentemente el soporte de una característica de tu sitio, vale la pena hacer todas las comprobaciones en la primera carga y entonces guardar los resultados, lo opuesto a revisar cada vez que se necesita. Encontramos que en algunas situaciones esto podría brindar una mejora notable en el rendimiento de inicialización.</p>
<h3>Herramientas</h3>
<p>Una pregunta que hemos estado escuchando es: “¿Qué herramientas utilizaron para construir el sitio?” Específicamente, “¿Usaron <a href="http://html.adobe.com/edge/animate/">Adobe Edge</a> para construir el sitio?”.</p>
<p>Bueno, primero, el equipo utilizó las mismas herramientas que otros diseñadores y desarrolladores web utilizan para construir sitios web. Estas incluyen herramientas como <a href="http://www.adobe.com/products/dreamweaver.html">Adobe Dreamweaver</a>, <a href="http://macromates.com/">TextMate</a>, <a href="http://www.panic.com/coda/">Coda</a> y <a href="http://www.adobe.com/products/photoshop.html">Photoshop</a>. También usamos <a href="http://www.adobe.com/products/flash.html">Adobe Flash</a> para crear las animaciones de hojas de sprites las cuales son utilizadas en la página de <a href="http://beta.theexpressiveweb.com/#!/html5-audio">Audio HTML5</a>.</p>
<p>Sin embargo, no utilizamos Adobe Edge para crear los motion graphics del sitio. Comenzamos el proyecto hace un par de meses mientras que la versión de prueba de Edge aún estaba siendo desarrollada. Más importante, la versión actual de Edge no está realmente orientada a este tipo de dinámica, la animación en tiempo de ejecución.</p>
<p>Como los <a href="http://www.adobe.com/go/edgesample">ejemplos</a> en el sitio de Adobe Edge destacan, la versión actual de Adobe Edge está enfocada en crear animaciones estáticas de tiempo de autor. Mientras que puedes aprovechar su salida en JavaScript, no es el enfoque primario de este lanzamiento. Por supuesto, esta es solo la versión de prueba, y el plan es proporcionar los ganchos en los lanzamientos posteriores para habilitar el tipo de animaciones dinámicas conducidas por eventos que se ven en theexpressiveweb.com.</p>
<p>Sin embargo, una cosa que hemos aprendido al desarrollar Flash, y al trabajar muy de cerca con la comunidad Flash, es que hay un balance entre lo que es animado en tiempo de autor en la herramienta, y lo que es animado programáticamente en tiempo de ejecución. Por ejemplo, para theexpressiveweb.com, Adobe Edge habría sido muy útil para crear rápidamente las animaciones y transiciones de todas las páginas de contenido y los elementos de navegación. Sin embargo, para los bloques de animaciones que construyen los demos, aún podríamos utilizar JavaScript, transiciones CSS3 y animar los bloques individuales en tiempo de ejecución. Esto debido a la complejidad de la animación, el número de veces en que se usan animaciones similares (doce en el sitio), el mero número de elementos siendo animados, y la facilidad de reutilizar el modelo del código para agregar nuevas animaciones. Adobe Edge permitirá este tipo de animaciones complejas, donde se animan cientos de elementos, pero en algunos casos, puede que aún quieras usar JavaScript y CSS directamente. Adobe Edge te dará esa opción.</p>
<p>El último objetivo de Adobe Edge es proporcionar la flexibilidad de trabajar dentro de ambos modelos. Sin embargo, para la primera versión de prueba, el equipo se enfocó en animaciones de tiempo de autor.</p>
<h2>Retroalimentación</h2>
<p>El sitio está en beta, pero nos gustaría escuchar cualquier retroalimentación, preguntas, o problemas que puedas tener. Puedes enviarnos tus comentarios a <a href="mailto:theexpressiveweb_feedback@adobe.com">theexpressiveweb_feedback@adobe.com</a>.</p>
<h2>Aprender más</h2>
<p>Si quieres aprender más acerca de cómo desarrollamos el sitio o acerca de HTML5 y CSS3 en general, revisa la página de <a href="http://beta.theexpressiveweb.com/resources/">recursos</a> en theexpressiveweb.com la cual lista muchos recursos útiles para comenzar con HTML5 / CSS3. Por supuesto, <a href="http://beta.theexpressiveweb.com/">beta.theexpressiveweb.com</a> es también un gran recurso en características específicas.</p>
<p style="text-align: center"><img src="http://activ.com.mx/wp-content/uploads/2012/11/fig03.jpg" alt="Recursos" width="400" height="294" /></p>
<p>Finalmente, puedes aprender más acerca de todo el trabajo que Adobe está haciendo en el sitio de <a href="http://www.adobe.com/solutions/html5.html">Adobe y HTML5</a>.</p>
<p>La versión original de este artículo está publicada en <a href="http://www.adobe.com/devnet/html5/articles/introducing-expressive-web.html">Adobe Devnet</a> bajo licencia Creative Commons, fue traducido y adaptado en nuestro blog por <a href="https://twitter.com/jesus_macedo">Jesús Macedo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://activ.com.mx/deconstruccion-html5-theexpressiveweb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comparación de Motores de Animación Flash</title>
		<link>http://activ.com.mx/comparacion-de-motores-de-animacion/</link>
		<comments>http://activ.com.mx/comparacion-de-motores-de-animacion/#comments</comments>
		<pubDate>Mon, 02 May 2011 04:14:34 +0000</pubDate>
		<dc:creator>jesus_macedo</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[animación]]></category>
		<category><![CDATA[articulos]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://activ.com.mx/?p=3230</guid>
		<description><![CDATA[Anteriormente hemos hablado acerca de cuatro motores de animación en Flash con ActionScript (TweenLite, GTween, TweenCube y Tweener); expusimos algunas de sus características mas importantes y mostramos algunos ejemplos. Ahora compararemos todos y cada uno de estos, mostrando sus ventajas y desventajas. Ademas también incluimos el motor integrado que nos brinda Flash. Pese a que [...]]]></description>
				<content:encoded><![CDATA[<p>Anteriormente hemos hablado acerca de cuatro motores de animación en Flash con ActionScript (<a title="Animación en Flash con TweenLite" href="http://activ.com.mx/animacion-en-flash-con-tweenlite/" target="_blank">TweenLite</a>, <a title="Animación en Flash con GTween" href="http://activ.com.mx/animacion-en-flash-con-gtween/" target="_blank">GTween</a>, <a title="Animación Flash con TweenCube" href="http://activ.com.mx/animacion-flash-con-tweencube/" target="_blank">TweenCube</a> y <a title="Animación Flash con Tweener" href="http://activ.com.mx/animacion-flash-con-tweener/" target="_blank">Tweener</a>); expusimos algunas de sus características mas importantes y mostramos algunos ejemplos. Ahora compararemos todos y cada uno de estos, mostrando sus ventajas y desventajas. Ademas también incluimos el motor integrado que nos brinda Flash.</p>
<div style="text-align: center"><img src="http://activ.com.mx/wp-content/uploads/2011/04/Last-300x171.jpg" alt="" width="300" height="171" /></div>
<p>Pese a que anteriormente no hablamos acerca del motor que el mismo Flash nos ofrece, lo haremos en esta ocasión comparándolo con los demás motores.</p>
<p><span id="more-3230"></span></p>
<h2>TweenLite</h2>
<p>Desarrollado por <a href="http://www.greensock.com/tweenlite/" target="_blank">GreenSock</a> con apoyo de Grant Skinner.</p>
<h3>Ventajas</h3>
<ul>
<li>Incluye plugins de fácil instalación y muy interesantes</li>
<li>Se puede integrar con Flex</li>
<li>Brinda la posibilidad de aplicar &#8220;reversa&#8221; a una animación</li>
<li>GreenSock provee al desarrollador/diseñador de trucos para una mejor animación</li>
</ul>
<h3>Desventajas</h3>
<ul>
<li>Aunque TweenMax pesa el doble, incluye mas y mejores plugins</li>
<li>Incluye pocos plugins</li>
</ul>
<h2>GTween</h2>
<p>Desarrollado por <a href="http://www.gskinner.com/libraries/gtween/" target="_blank">Grant Skinner</a>.</p>
<h3>Ventajas</h3>
<ul>
<li>Los plugins son muy fáciles de instalar e integrar en los proyectos</li>
<li>Esta orientado a desarrolladores, y pese a que esto no impide que un diseñador lo utilice</li>
<li>Puede integrarse con Flex y Papervision</li>
<li>Brinda la posibilidad de aplicar play, pausa reversa a una animación</li>
</ul>
<h3>Desventajas</h3>
<ul>
<li>No ha sido actualizado desde el 2009, por lo cual puede en determinado punto no cubrir ciertos bugs</li>
</ul>
<h2>TweenCube</h2>
<p>Comenzó como un proyecto privado de <a href="http://blog.inkora.com/" target="_blank">Inkora</a>, un grupo de desarrolladores comenzó para cubrir sus necesidades en cuanto a animación, pero con el tiempo decidieron compartirlo de forma gratuita.</p>
<h3>Ventajas</h3>
<ul>
<li>Brinda la posibilidad de manipular una animación por medio de un componente (por ejemplo un Slider)</li>
<li>Permite pausar una animación que genera objetos aleatoriamente</li>
<li>Brinda la posibilidad de agregar Tweens a archivos de audio</li>
</ul>
<h3>Desventajas</h3>
<ul>
<li>No cuenta con una documentación tan extensa, lo cual hace hasta cierto punto difícil solucionar un problema o indagar mas allá acerca de otra solución</li>
</ul>
<h2>Tweener</h2>
<p>Desarrollado por <a href="http://code.google.com/p/tweener/" target="_blank">Caurina</a>, un grupo de personas que en conjunto a la comunidad dan soporte a este motor.</p>
<h3>Ventajas</h3>
<ul>
<li>Documentación disponible en Ingles, Portugués y Japones</li>
<li>Disponible no solo en ActionScript, también para Python, JavaScript y C++</li>
<li>Puede integrarse con Papervision facilmente</li>
</ul>
<h3>Desventajas</h3>
<ul>
<li>Solo permite pausar las animaciones</li>
<li>No recomendado para alguien con nivel básico en ActionScript</li>
</ul>
<h2>Flash</h2>
<p>Flash Professional nos ofrece su propio motor de animación, el cual fue incluido desde la versión 8.</p>
<h3>Ventajas</h3>
<ul>
<li>Perfecto para principiantes o personas con nivel de ActionScript básico</li>
</ul>
<h3>Desventajas</h3>
<ul>
<li>Muy fácilmente puede quedar pequeño ante las necesidades del desarrollador/diseñador</li>
<li>Algunas interpolaciones se ejecutan muy lentamente</li>
<li>No recomendado para animar elementos generados aleatoriamente</li>
</ul>
<p>Tabla comparativa de mas características mas importantes:</p>
<table>
<th>Motor</th>
<th>TweenLite</th>
<th>GTween</th>
<th>TweenCube</th>
<th>Tweener</th>
<th>Flash</th>
<tr>
<td><strong>Gratuito</strong></td>
<td>Gratuito y de Pago</td>
<td>Gratuito</td>
<td>Gratuito</td>
<td>Gratuito</td>
<td>Incluido en Flash</td>
</tr>
<tr>
<td><strong>Plugins</strong></td>
<td>Gratuitos y de Pago</td>
<td>Gratuitos</td>
<td>Gratuitos</td>
<td>No</td>
<td>Gratuitos y de Pago</td>
</tr>
<tr>
<td><strong>TimeLine</strong></td>
<td>Propio</td>
<td>Propio</td>
<td>Propio</td>
<td>Propio</td>
<td>No</td>
</tr>
<tr>
<td><strong>Soporte</strong></td>
<td>Foros, Tutoriales, Demos y Documentación</td>
<td>Demos y Documentación </td>
<td>Demos, Tutoriales y Documentación</td>
<td>Demos y Documentación</td>
<td>Demos y Documentación</td>
</tr>
<tr>
<td><strong>Integración</strong></td>
<td>Flex</td>
<td>Flex y Papervision</td>
<td>Flex y Papervision</td>
<td>Flex y Papervision</td>
<td>No</td>
</tr>
<tr>
<td><strong>Peso</strong></td>
<td>4.8 kb</td>
<td>3.5 kb</td>
<td>4.5 kb</td>
<td>30.4 kb</td>
<td>-</td>
</tr>
</table>
<p>Aunque a simple vista ofrezcan cosas parecidos cada uno es diferente, esta misma diferencia sera mas notoria cuando se trabaje con cada uno.</p>
]]></content:encoded>
			<wfw:commentRss>http://activ.com.mx/comparacion-de-motores-de-animacion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Animación Flash con Tweener</title>
		<link>http://activ.com.mx/animacion-flash-con-tweener/</link>
		<comments>http://activ.com.mx/animacion-flash-con-tweener/#comments</comments>
		<pubDate>Wed, 27 Apr 2011 15:30:16 +0000</pubDate>
		<dc:creator>jesus_macedo</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[animación]]></category>
		<category><![CDATA[articulos]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://activ.com.mx/?p=3193</guid>
		<description><![CDATA[Bienvenidos a la quinta entrega de nuestra serie de artículos sobre Animación en Flash con ActionScript; anteriormente hemos hablado acerca de los motores de animación TweenLite, GTween y TweenCube. En esta ocasión hablaremos acerca de Tweener un motor de animación desarrollado por Caurina, un grupo de personas que se encargan de dar mantenimiento al motor corrigiendo los bugs que los usuarios reportan. Tweener es un [...]]]></description>
				<content:encoded><![CDATA[<p>Bienvenidos a la quinta entrega de nuestra serie de artículos sobre <a href="http://activ.com.mx/introduccion-a-la-animacion-2/" target="_blank">Animación en Flash</a> con <em>ActionScript</em>; anteriormente hemos hablado acerca de los motores de animación <a href="http://activ.com.mx/animacion-en-flash-con-tweenlite/" target="_blank">TweenLite</a>, <a href="http://activ.com.mx/animacion-en-flash-con-gtween/" target="_blank">GTween</a> y <a title="Animación Flash con TweenCube" href="http://activ.com.mx/animacion-flash-con-tweencube/" target="_blank">TweenCube</a>. </p>
<p>En esta ocasión hablaremos acerca de <strong>Tweener</strong> un motor de animación desarrollado por <span style="text-decoration: underline">Caurina</span>, un grupo de personas que se encargan de dar mantenimiento al motor corrigiendo los bugs que los usuarios reportan.</p>
<div style="text-align: center"><img src="http://activ.com.mx/wp-content/uploads/2011/04/Tweener.jpg" alt="" width="150" height="32" /></div>
<p>Tweener es un motor <em>Open Source</em> y se encuentra actualmente en la versión 1.33 ademas de que cuenta con una version para ActionScript 2 y una de ActionScript 3.<br />
<span id="more-3193"></span></p>
<p>A decir verdad es un motor robusto que puede trabajar en integración con <a href="http://blog.papervision3d.org/" target="_blank">Papervision</a>. Esto no es de sorprender, puesto que en su núcleo mismo utiliza también las ecuaciones de <a href="http://www.robertpenner.com/easing/" target="_blank">Robert Penner</a> (también Open Source). Esta robustez lo hace también mas pesado (el mas pesado de todos los motores que tratado), 30.3KB.</p>
<p>Tweener cuenta ademas con diferentes versiones para varios lenguajes de programación (<em>C++, JavaScript, Python</em>), las cuales han sido desarrolladas por los mismos usuarios y que también están disponibles para su <a href="http://code.google.com/p/tweener/" target="_blank">descarga aquí</a>.</p>
<h2>Ejemplo</h2>
<p>A continuación se presenta un ejemplo que muestra de manera breve el uso de este motor. Veremos tres tipos de interpolaciones o animaciones que podemos nosotros aplicar a nuestros botones. Al pasar el Mouse sobre el primer botón, observaremos como cambia su tamaño haciéndose mas grande, para volver a su tamaño original cuando retiramos el cursor. El segundo botón se rotara un poco mientras se hace grande, y al retirar el cursor volverá a su posición y tamaños originales. Mientras que el tercero cambiara de tener un color claro a uno mas oscuro modificando su propiedad <em>alpha</em>.</p>
<p>Debemos recordar que la finalidad mencionada en el articulo <strong>Introducción a la Animación</strong> es permitirle al usuario interactuar de manera directa con nuestras aplicaciones por medio de la animación, estos son algunos ejemplos de animaciones que podemos incluir en nuestras aplicaciones y que harán mas agradable al usuario su uso.</p>
<div style="text-align: center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_TweenerDemo_1871507361"
			class="flashmovie"
			width="350"
			height="200">
	<param name="movie" value="http://activ.com.mx/wp-content/uploads/2011/04/TweenerDemo.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://activ.com.mx/wp-content/uploads/2011/04/TweenerDemo.swf"
			name="fm_TweenerDemo_1871507361"
			width="350"
			height="200">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object></div>
<p>Un ejemplo acerca de la integración de Tweener con Papervision podrás <a href="http://tweener.googlecode.com/svn/trunk/examples/papervision3d_cones_as3_flash9.zip">descargarlo aquí</a>. Si buscas algo diferente que permita al usuario una mayor interacción por medio de curvas <strong>Bézier</strong> y elementos generados y posicionados solo cuando el usuario lo pida puedes <a href="http://tweener.googlecode.com/svn/trunk/examples/bezierMaker_as3_flash9cs3.zip">descargar este ejemplo</a>.Ambos desarrollados por los fundadores de Tweener.</p>
<h2>Tips</h2>
<ul>
<li>Si eres diseñador o tienes conocimientos básicos de ActionScript te recomiendo revises los ejemplos que puedes <a href="http://tweener.googlecode.com/svn/trunk/examples/" target="_blank">descargar aquí</a>.</li>
<li>Siempre deja tu comentario/duda o simplemente reporta un bug acerca del motor, tanto los colaboradores como los demás usuarios podrán orientarte al respecto.</li>
<li>Puedes utilizar este motor para el desarrollo de demos interactivas en 3D uniendo Tweener con Papervision.</li>
</ul>
<p>Si necesitas interpolaciones sencillas que no requieran de una integración mayor, te recomiendo utilices alguno de los otros motores de animación, incluso mas cuando requieras que tu SWF final sea liviano. Si no debes escatimar en recursos tendrás una feliz integración con Tweener, que pese a que no cuenta con algún blog o foro dedicado si encontraras tips y ejemplos muy buenos en los blogs personales de cada uno de los desarrolladores, <a href="http://www.stimuli.com.br/trane/" target="_blank">Arthur Debert</a>, <a href="http://blog.natejc.com/" target="_blank">Nate Chatellier</a> y <a href="http://labs.zeh.com.br/blog" target="_blank">Zeh Fernando</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://activ.com.mx/animacion-flash-con-tweener/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Animación Flash con TweenCube</title>
		<link>http://activ.com.mx/animacion-flash-con-tweencube/</link>
		<comments>http://activ.com.mx/animacion-flash-con-tweencube/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 03:40:50 +0000</pubDate>
		<dc:creator>jesus_macedo</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[animación]]></category>
		<category><![CDATA[articulos]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://activ.com.mx/?p=3131</guid>
		<description><![CDATA[Bienvenidos a la cuarta entrega de nuestra serie de artículos relacionados a la animación en Flash con ActionScript, anteriormente publicamos una introducción al tema, seguido de dos artículos basados en TweenLite y GTween. En esta ocasión toca el turno de un motor de animación muy recomendable, potente y con una variedad de opciones muy útil.  [...]]]></description>
				<content:encoded><![CDATA[<p>Bienvenidos a la cuarta entrega de nuestra serie de artículos relacionados a la animación en Flash con ActionScript, anteriormente publicamos una <a title="Introducción a la Animación con Flash" href="http://activ.com.mx/introduccion-a-la-animacion-2/" target="_blank">introducción</a> al tema, seguido de dos artículos basados en <a title="Animación en Flash con TweenLite" href="http://activ.com.mx/animacion-en-flash-con-tweenlite/" target="_blank">TweenLite</a> y <a title="Animación en Flash con GTween" href="http://activ.com.mx/animacion-en-flash-con-gtween/" target="_blank">GTween</a>.</p>
<p>En esta ocasión toca el turno de un motor de animación muy recomendable, potente y con una variedad de opciones muy útil.  <strong>TweenCube</strong> es un motor de animación que resultara muy atractivo para quienes han probado otros y que a pesar de sus características siguen necesitando más.</p>
<div style="text-align: center"><img src="http://activ.com.mx/wp-content/uploads/2011/04/logo-300x46.jpg" alt="" width="300" height="46" /></div>
<p>TweenCube es desarrollado por <strong>Inkora</strong>, un grupo de profesionales que justamente han visto en esta necesidad la oportunidad de desarrollar un motor propio y potente, pero que además lo comparten de forma gratuita. Actualmente se encuentra en la versión 1.2 y en comparación a los demás motores de los cuales hemos hablado (<a href="http://activ.com.mx/animacion-en-flash-con-tweenlite/">TweenLite</a> y <a href="http://activ.com.mx/animacion-en-flash-con-gtween/">GTween</a>), pesa 4.5KB.<br />
<span id="more-3131"></span></p>
<p>TweenCube incluye la posibilidad de agregar <em>Tweens</em> a nuestros <em>MovieClips</em> por medio de XML, lo cual significa que por medio de un archivo externo, o un <strong>XML</strong> definido y creado dentro de nuestro código ActionScript podremos hacer uso de este motor. Otra de las cualidades más interesantes de este motor es que incluye una <strong>línea de tiempo propia</strong>, es decir, no solo contamos con la línea de tiempo que por default nos proporciona Flash y que podemos extender cuanto queramos, sino que nuestras animaciones pueden correr dentro de un <em>segundo plano independiente</em>.</p>
<p>A continuación se muestra una forma de incluir Tweens dentro de XML:</p>
<div style="text-align: center"><a href="http://activ.com.mx/wp-content/uploads/2011/04/codigo.jpg"><img src="http://activ.com.mx/wp-content/uploads/2011/04/codigo-300x53.jpg" alt="" width="300" height="53" /></a></div>
<p>La documentación referente a este motor se encuentra en el sitio desde el cual podemos <a href="http://blog.inkora.com/tweencube/tweencube-tween-engine/" target="_blank">descargarlo</a>; quizá no es tan extensa como alguna otra con la que hayamos trabajado anteriormente, pero esa brevedad y sencillez es la que te permite comenzar rápidamente con la integración de TweenCube en tus animaciones.</p>
<h2>Ejemplo</h2>
<p>A continuación se muestran dos ejemplos. El primero que se ejecuta tras cargar la animación, nos muestra un Tween (en este caso <strong>Bounce.easeOut</strong> con ligero cambio en la <em>rotación</em>) sencillo que muestra un MovieClip en nuestro escenario. A contnuacion podemos ejecutar el siguiente Tween, dando clic en el botón “Play”, para así visualizar la traslación que realizara el planeta tierra alrededor del sol para volver a su posición inicial. Existe un cambio en la posición <strong>Z</strong> del MovieClip, mismo que se aplica durante el mismo Tween.</p>
<p>Al presionar el botón “Siguiente” podremos visualizar cinco MovieClips, los cuales podremos mover al mismo tiempo mientras arrastramos el <strong>Horizontal Slider</strong>. Esto puede hacerse por medio de Tweens que se ejecutan al mismo tiempo, pero que modifican <strong>las propiedades X y Y </strong>en valores diferentes; para lograr esto se omiten las funciones Complete que permiten ejecutar otro Tween finalizado uno.</p>
<div style="text-align: center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_CargaDemo_1874243310"
			class="flashmovie"
			width="350"
			height="200">
	<param name="movie" value="http://activ.com.mx/wp-content/uploads/2011/04/CargaDemo.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://activ.com.mx/wp-content/uploads/2011/04/CargaDemo.swf"
			name="fm_CargaDemo_1874243310"
			width="350"
			height="200">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object></div>
<h2>Tips</h2>
<ul>
<li>Si aun no tienes conocimientos muy avanzados en ActionScript no te será difícil comprender como funciona este motor, sin embargo, te servirá mejor comenzar ya sea con TweenLite y GTween, ya que su empleo es más sencillo.</li>
<li>Este motor de animación no es uno que se pueda recomendar a diseñadores (a menos que tengan un buen nivel de conocimiento acerca de ActionScript), puesto que a veces la comprensión de la sintaxis se vuelve muy difícil, mas cuando se trabaja con Tweens por medio de XML.</li>
<li>Pese a que los ejemplos aplican un gran número de interpolaciones, no significa que debas complicarte la vida de la misma forma, una vez hayas comprendido los elementos principales, puedes modificar la forma en que aplicas estas interpolaciones sin sufrir un dolor de cabeza al intentarlo, esto gracias a que es un motor opensource.</li>
<li>En cuanto hayas modificado el motor a tu gusto, puedes comprimir estas clases dentro de un SWC, de forma que sea más ligero y no incremente mucho el peso de tus animaciones.</li>
</ul>
<p>TweenCube es un motor de animación recomendado para aquellos que poseen conocimientos <strong>medios/avanzados</strong> de ActionScript, más que nada por la complejidad que la sintaxis pueda tener; sin embargo esto <em>no significa que alguien con conocimientos básicos no pueda utilizarlo plenamente</em>. Si has trabajado con otros motores de animación y sigues sintiendo la necesidad de más dinamismo y rendimiento, sin duda TweenCube será el motor adecuado para ti, y su peso total es de 4.5KB</p>
]]></content:encoded>
			<wfw:commentRss>http://activ.com.mx/animacion-flash-con-tweencube/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Animación en Flash con GTween</title>
		<link>http://activ.com.mx/animacion-en-flash-con-gtween/</link>
		<comments>http://activ.com.mx/animacion-en-flash-con-gtween/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 18:30:58 +0000</pubDate>
		<dc:creator>jesus_macedo</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[animación]]></category>
		<category><![CDATA[articulos]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://activ.com.mx/?p=2871</guid>
		<description><![CDATA[Bienvenidos a nuestra tercera entrega de artículos dedicados a la animación mediante ActionScript, en la primera parte hablamos a nivel general de la Animación con Flash y en la segunda discutimos acerca de una librería llamada Tweenlite. En esta tercera entrega vamos a revisar otro proyecto muy interesante llamado GTween. Uno de los mejores desarrolladores [...]]]></description>
				<content:encoded><![CDATA[<p>Bienvenidos a nuestra tercera entrega de artículos dedicados a la animación mediante ActionScript, en la primera parte hablamos a nivel general de la <a href="http://activ.com.mx/introduccion-a-la-animacion-2/">Animación con Flash</a> y en la segunda discutimos acerca de una librería llamada <a href="http://activ.com.mx/animacion-en-flash-con-tweenlite/">Tweenlite</a>. En esta tercera entrega vamos a revisar otro proyecto muy interesante llamado GTween. </p>
<div style="text-align: center"><img src="http://activ.com.mx/wp-content/uploads/2011/03/gtween_logo.jpg" alt="GTween logo" width="81" height="79" /></div>
<p>Uno de los mejores desarrolladores <em>Flash</em> del mundo es sin duda <strong>Grant Skinner</strong> (<a href="http://twitter.com/gskinner" target="_blank">@gskinner</a>), quien se ha dedicado a desarrollar uno de los más famosos y potentes motores de animación con <strong>ActionScript</strong> llamado <strong><em>GTween</em></strong>. Este motor es gratuito y no cuenta con una versión Premium, aunque sí con varios plugins que nos permiten agregar fuerza a dicho motor.<br />
<span id="more-2871"></span><br />
<em><a href="http://gskinner.com/libraries/gtween/" target="_blank">GTween</a> </em>ha sido desarrollado desde agosto del 2008 y a lo largo de sus diferentes versiones ha ido reforzando puntos débiles y errores que fueron reportados por usuarios del mismo, es de esperarse que con cada actualización vengan cosas muy buenas que nos permiten llevar nuestras animaciones al siguiente nivel.</p>
<p>Un motor tan <strong>liviano y potente</strong> es sin duda la mejor opción para los <em>animadores y desarrolladores</em> que han probado varios motores, y que siguen sintiendo la necesidad de rapidez, facilidad de uso y variedad; estas necesidades sin duda <span style="text-decoration: underline">son cubiertas por GTween</span>.</p>
<p>Grant Skinner contribuye en el desarrollo de <strong>TweenLite</strong> y es por esto mismo que usar ambos motores es muy fácil, aunque cabe aclarar que GTween <em>pesa incluso menos que la versión gratuita de TweenLite</em>. Este motor cuenta con una serie de <strong>plugins</strong> incluidos (<em>y que se encuentran deshabilitados</em>), los cuales no solo son muy fáciles de usar, sino que cada uno amplia enormemente las posibilidades de desarrollo. A continuación podemos ver la sintaxis para <strong>habilitar los plugins</strong> utilizados en el ejemplo que se encuentra más adelante:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="actionscript" style="font-family:monospace;">MotionBlurPlugin.<span style="color: #0066CC;">install</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
ColorAdjustPlugin.<span style="color: #0066CC;">install</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>Si necesitamos animar objetos <strong>generados/posicionados</strong> al azar en nuestra animación, y que además poseen propiedades distintas, podemos estar seguros de que <span style="text-decoration: underline">sin importar la cantidad</span> de estos objetos siempre serán visualizados correctamente en nuestra animación. Hasta ahora se ha mejorado la interacción con <strong>EventListener’s</strong> de ActionScript 3, cuenta con una <strong>línea de tiempo propia</strong> que puede sernos muy útil cuando requerimos de una aplicación que pueda ser ejecutada en <em>reversa</em> por el usuario, así como también puede ser <em>pausada</em>.</p>
<h2>Ejemplo</h2>
<p>Esta animación muestra algunas características que GTween nos provee. Tras cargar nuestra animación nos muestra tres botones de colores, uno azul, uno rojo y uno amarillo (los cuales ejecutaran cada una de estas propiedades). El botón Azul nos muestra una <strong>interpolación de movimiento</strong> aplicada a un MovieClip, que además se ve afectado por el efecto Blur antes de llegar a la siguiente posición.</p>
<p>El botón rojo nos muestra cómo podemos hacer cambio a las propiedades visuales de nuestras imágenes (<span style="text-decoration: underline">también aplicable a cualquier MovieClip</span>), modificando su <strong>contraste</strong> (<em>de -100 a 0</em>) y su <strong>saturación</strong> (<em>de 70 a 0</em>).</p>
<p>El botón amarillo nos mostrara un hexágono que inicialmente se traslada desde la parte inferior de nuestro contenedor, hasta la parte superior derecha con un movimiento horizontal. Al hacer clic sobre el espacio en blanco de nuestro contenedor, podemos modificar el curso de nuestro hexágono que comenzara a trasladarse de arriba hacia abajo <strong>en base a la coordenada en X del clic que hagamos</strong>.</p>
<div style="text-align: center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_carga1_1693598499"
			class="flashmovie"
			width="350"
			height="200">
	<param name="movie" value="http://activ.com.mx/wp-content/uploads/2011/03/carga1.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://activ.com.mx/wp-content/uploads/2011/03/carga1.swf"
			name="fm_carga1_1693598499"
			width="350"
			height="200">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object></div>
<h2>Tips</h2>
<ul>
<li>Cuando tengas una serie de Tweens a ejecutar uno tras otro, será mejor que los posiciones en tu código de ActionScript, de forma <strong>invertida</strong> (es decir, el ultimo primero y el primero al último); así ahorraras tiempo puesto que en ocasiones no ejecuta de manera correcta los tweens sin haber detectado antes los demás a ejecutar.</li>
<li>El uso de este motor <strong>no está restringido</strong> para su uso en la industria puesto que no cuenta con una versión de pago, Grant Skinner solo pide mantengas sus comentarios en las cabeceras de los archivos fuente.</li>
<li>El usuario siempre querrá tener el control de nuestra animación, por lo cual podemos incluir en nuestro código las propiedades necesarias que le permitan ya sea <strong>pausar nuestra animación, reiniciarla e incluso regresarla</strong>.</li>
<li>La sintaxis de GTween es muy parecida a la de <a href="http://activ.com.mx/animacion-en-flash-con-tweenlite/" target="_blank">TweenLite</a>, de modo que si has probado con anterioridad este otro motor, te será aun más sencillo trabajar con GTween.</li>
</ul>
<div style="text-align:center"><a href="http://www.gskinner.com/libraries/gtween/GTween_v2_01.zip"><img src="http://activ.com.mx/wp-content/uploads/2011/03/bajalo.jpg" alt="" width="120" height="120" /></a></div>
<p>Si tienes conocimientos básicos de ActionScript este motor te ayudara a integrar animación a tus proyectos, el mismo archivo zip que contiene el SWC, incluye también la documentación y algunos ejemplos, básicos pero muy interesantes en los cuales aprenderás a abrirte paso en el mundo de la animación, haciendo uso de un motor tan potente.</p>
]]></content:encoded>
			<wfw:commentRss>http://activ.com.mx/animacion-en-flash-con-gtween/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Animación en Flash con TweenLite</title>
		<link>http://activ.com.mx/animacion-en-flash-con-tweenlite/</link>
		<comments>http://activ.com.mx/animacion-en-flash-con-tweenlite/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 20:55:03 +0000</pubDate>
		<dc:creator>jesus_macedo</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[animación]]></category>
		<category><![CDATA[articulos]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[tweenlite]]></category>

		<guid isPermaLink="false">http://activ.com.mx/?p=2692</guid>
		<description><![CDATA[Una de las características más importantes y potentes de Flash Professional, es la posibilidad de crear Animación apoyándonos en las herramientas que el mismo Framework nos provee o también, con las que podamos encontrar en la red (motores de animación, ejemplos, etc). Pero lo más importante no es solo con que realizamos estas animaciones sino [...]]]></description>
				<content:encoded><![CDATA[<p>Una de las características más importantes y potentes de <strong>Flash Professional</strong>, es la posibilidad de crear <span style="text-decoration: underline">Animación</span> apoyándonos en las herramientas que el mismo <em>Framework</em> nos provee o también, con las que podamos encontrar en la red (motores de animación, ejemplos, etc). Pero lo más importante no es solo con que realizamos estas animaciones sino también la calidad y la duración de las mismas.</p>
<div style="text-align: center"><img src="http://i720.photobucket.com/albums/ww203/pensamientos_perdidos/tlite.jpg" alt="" width="342" height="92" /></div>
<p>Las interpolaciones de movimiento que nos brinda este motor se ejecutan de forma veloz, incluso cuando se aplican a mas de un objeto a la vez y de forma aleatoria.<br />
<span id="more-2692"></span></p>
<h2>TweenLite</h2>
<p>Es un motor de animación que nos provee un gran numero de <em>interpolaciones</em> y opciones que harán de nuestra animación, una de las mejores experiencias web del usuario. Es <strong>potente, ligero y ademas cuenta con dos versiones</strong> (una gratuita y una de pago); ambas versiones contienen funciones muy interesantes y atractivas. TweenLite es la mejor opción para cuando se requiere una gran cantidad de posibilidades (en cuanto a animación), en un swc muy ligero y que hará de nuestro trabajo algo <span style="text-decoration: underline">excepcional</span>.</p>
<p>TweenLite nace hace 10 años ante la necesidad de una herramienta que permitiera de manera sencilla, la integración de animación sin tener un conocimiento avanzado de ActionScript e incluso sin tener que invertir mucho tiempo en esta integración.</p>
<p>Su creador es un <strong>Diseñador/Desarrollador</strong> que comenzó a generar su propio código en base a esta necesidad, puesto que trabajo un tiempo en una agencia de publicidad y su labor era justamente crear experiencias increíbles para el usuario. Con el tiempo se dio cuenta de que hay mucho código en <strong>blogs y foros</strong>, que podemos utilizar pero que no siempre funciona como queremos y que en muchas ocasiones tiene una gran cantidad de errores. De esta forma decidió compartir su código con mas desarrolladores, que rápidamente pasaron la voz e hicieron de este motor uno de los mas famosos en la actualidad.</p>
<h2>Ejemplo</h2>
<p>La siguiente animación muestra algunas de las interpolaciones que TweenLite nos permite realizar. Utilizando <strong>TweenLite.to</strong> y <strong>TweenLite.from</strong> brindamos la sensación de movimiento en nuestros objetos, e incluso aplicamos esta animacion a objetos (en este caso <em>shapes</em>) generados y posicionados aleatoriamente, como es el caso de las estrellas.</p>
<p>A la luna se le aplico un efecto sencillo de movimiento que incluye a nuestra animacion un objeto que se encuentra inicialmente posicionado afuera del área visible.</p>
<p>Y finalmente, un trabajo en conjunto entre las interpolaciones aplicadas a nuestro meteorito y al planeta tierra, generan una explosión sencilla que se ejecuta en cuanto nuestro meteorito se impacta en el planeta.</p>
<div style="text-align: center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_carga_1615211836"
			class="flashmovie"
			width="300"
			height="330">
	<param name="movie" value="http://activ.com.mx/wp-content/uploads/2011/03/carga.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://activ.com.mx/wp-content/uploads/2011/03/carga.swf"
			name="fm_carga_1615211836"
			width="300"
			height="330">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object></div>
<h2>Tips</h2>
<ul>
<li>TweenLite te provee de muchos <a href="http://www.greensock.com/learning/" target="_blank">recursos</a> para aprender a implementarlo en tus animaciones, puesto que cuenta con Foros, una documentación muy bien hecha e <strong>incluso videotutoriales</strong>.</li>
<li>Puedes sobreescribir las interpolaciones ya existentes y desarrollar las tuyas, TweenLite te muestra como hacerlo en su apartado recursos.</li>
<li>Si es que aun no has dado el gran salto de <strong>ActionScript 2 hacia ActionScript 3</strong>, TweenLite te provee de una versión para ambas versiones.</li>
<li>Agrega <strong>EventListener&#8217;s</strong> que se ejecuten en cuanto la interpolacion se haya realizado exitosamente e incluso puedes enviar a esta función los parámetros requeridos.</li>
<li>Revisa la sección <a href="http://www.greensock.com/tweening-tips/" target="_blank">Tips &amp; Tricks</a> donde siempre encontraras algo muy interesante y sobretodo util, para <em>optimizar </em>tus animaciones.</li>
</ul>
<h2>TweenLite VS TweenMax</h2>
<p>Ambos motores son desarrollados por <a href="http://www.greensock.com/" target="_blank">GreenSock</a> los cuales cuentan con una versión gratuita y una versión de pago. Ambas versiones de pago contienen muchas características e interpolaciones muy atractivas. <strong>TweenMax</strong> contiene a su vez interpolaciones que visualmente son <span style="text-decoration: underline">superiores</span> a las de TweenLite, y esto se ve reflejado en el peso total de ambos SWC&#8217;s, puesto que TweenLite pesa solo 4.8 kb y TweenMax 8.8 kb (en sus versiones gratuitas).</p>
<p>TweenMax contiene a su vez efectos visuales que van mas allá de movimiento y velocidad de movimiento, por ejemplo <strong>Blur</strong> que podemos combinar con un efecto de traslación que harían de nuestro objeto algo impactante.</p>
<div style="text-align: center"><img src="http://activ.com.mx/wp-content/uploads/2011/03/badge-made-with-tweenlite-108x54.gif" alt="" width="108" height="54" /></div>
<p>TweenLite es sin duda un muy buen motor de animación para diseñadores que no desean meterse en tanto código y para desarrolladores que desean realizar su trabajo velozmente.</p>
]]></content:encoded>
			<wfw:commentRss>http://activ.com.mx/animacion-en-flash-con-tweenlite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducción a la Animación con Flash</title>
		<link>http://activ.com.mx/introduccion-a-la-animacion-2/</link>
		<comments>http://activ.com.mx/introduccion-a-la-animacion-2/#comments</comments>
		<pubDate>Thu, 17 Mar 2011 04:32:18 +0000</pubDate>
		<dc:creator>jesus_macedo</dc:creator>
				<category><![CDATA[Activ]]></category>
		<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[animación]]></category>
		<category><![CDATA[articulos]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flash catalyst]]></category>
		<category><![CDATA[flash player]]></category>
		<category><![CDATA[plataforma flash]]></category>

		<guid isPermaLink="false">http://activ.com.mx/?p=2725</guid>
		<description><![CDATA[La animación en Flash es algo que llama la atención de muchos y no es para menos. Podemos crear juegos, aplicaciones, interactivos y más que se podrán visualizar en cualquier explorador y en cualquier sistema operativo, mientras se tenga instalado en plugin de Flash Player. Pero no solo es eso lo que gusta de la [...]]]></description>
				<content:encoded><![CDATA[<p>La animación en Flash es algo que llama la atención de muchos y no es para menos. Podemos crear <strong>juegos, aplicaciones, interactivos y más</strong> que se podrán visualizar en cualquier explorador y en cualquier sistema operativo, mientras se tenga instalado en plugin de Flash Player. Pero no solo es eso lo que gusta de la animación en Flash, sino también la posibilidad de dar vida a nuestras ideas de una forma rápida y con salida para <strong>múltiples dispositivos</strong>.</p>
<div style="text-align: center"><img src="http://i720.photobucket.com/albums/ww203/pensamientos_perdidos/animation.jpg" alt="" /></div>
<p>El <strong>core </strong>de Flash es como tal una maquina de animación, por lo cual podemos usarlo para crear animación de dos formas: 1.- a través de <strong>Tweens</strong>, y 2.- a través de código <strong>ActionScript</strong>. Nosotros podemos apoyarnos fácilmente en cualquiera de estos dos para el desarrollo de animaciones en nuestro trabajo, la diferencia es que si lo hacemos por medio de ActionScript tendremos el  control sobre todo evento que se esté realizando en el escenario.<br />
<span id="more-2725"></span><br />
Definimos Animación como: “<em>Diseñar y Producir  objetos que se ejecutan a cierta velocidad para crear la <strong>ilusión </strong>de movimiento</em>”. El movimiento es básicamente cambiar algo de posición, “<em>un momento está aquí, y al siguiente esta allá</em>”. Pero un objeto no necesariamente debe cambiar su posición para ser considerado animación;<span style="text-decoration: underline"> el objeto puede cambiar su tamaño, su orientación, o puede simplemente cambiar su color</span>.</p>
<h2>Movimiento a través de Frames.</h2>
<p>Un <strong>frame </strong>es un fotograma o cuadro, el cual puede ser considerado como el <span style="text-decoration: underline">elemento más pequeño e importante</span> dentro de nuestra animación. Los frames son ejecutados a una velocidad de 24 fps (frames por segundo), lo cual significa que <strong>24 frames componen un segundo</strong> en nuestra animación. Virtualmente todos los medios de animación usan frames, los cuales son imágenes fijas que se ejecutan rápidamente para simular el movimiento o cambio en el objeto.</p>
<p>Si deseas una animación más lenta puedes hacer que tu animación se ejecute a menos frames por segundo, e incluso si deseas que tu animación se ejecute a una velocidad mayor también puedes cambiar esta velocidad, solo ten en cuenta que llegara un punto en que no se distinga apropiadamente puesto que a mayor velocidad, mayor será la dificultad para que sea apreciada por el ojo humano.</p>
<h2>Animación Dinámica vs Animación Estática.</h2>
<p>ActionScript hará tus animaciones dinámicas temporalmente, y te permitirá implementar las interpolaciones que tú desees (<span style="text-decoration: underline">aunque también tiene sus límites</span>). Aquí no hay mucho que destacar más que un punto muy importante, y es cuando una animación dinámica se convierte en estática.</p>
<p>Cuando un usuario ha visualizado tu animación más de una ocasión y esta ha dejado de ofrecerle una nueva experiencia, es entonces cuando tu animación se convierte en <strong>estática</strong>. Sin importar cuánto código de ActionScript este ejecutándose, puesto que finalmente serán los mismos frames los que se ejecuten una y otra vez. Solo hay una forma de salvar tu animación por más tiempo y conseguir que siga siendo dinámica; añadiéndole interactividad.</p>
<p>Puedes permitirle al usuario <strong>interactuar con tu animación</strong> ya sea por medio del <em>teclado o el mouse</em>, esto incrementara la experiencia de usuario que brinda al usuario (aunque también requerirá más lógica dentro de tu código). Ahora tendrás que preocuparte solo por las fuerzas físicas que afecten a los objetos dentro de tu animación.</p>
<h2>Event Listeners</h2>
<p>Para añadir interactividad a tu animación necesitaras de EventListener’s, los cuales se encargaran de <span style="text-decoration: underline"><em>captar las acciones de los objetos en el escenario.</em></span> O lo que es lo mismo, añadirán a tus objetos la posibilidad de <strong>comunicarse </strong>con tu código. Sin embargo necesitamos saber qué tipo de evento estamos esperando de nuestro objeto, ya sean de mouse, teclado, etc. Dependiendo del tipo de datos que estemos manejando serán también los tipos de <strong>eventos </strong>que podremos usar.</p>
<p>Cuando se está trabajando con animación es muy común utilizar <strong>ENTER_FRAME y Timer</strong>. El primero se lleva a cabo en cuanto ejecutamos nuestra animación, es decir,  solo cuando se ha ejecutado la animación y no durante todo el tiempo que dure nuestro trabajo (aunque esto depende de tus necesidades). Y el segundo consta de una lógica más profunda que nos permitirá ejecutar una función en base al tiempo.</p>
<h3>ENTER_FRAME.</h3>
<p>Este EventListener nos permitirá tener el <em>control </em>de nuestra animación desde el momento en que esta ha sido ejecutada por el usuario, iniciando así la interacción que nosotros deseamos tenga el usuario. Basta con agregar este EventListener a nuestro escenario.</p>
<p><strong>Ejemplo</strong>: Tenemos un proyecto que carga dentro de un UILoader otro swf. Mediante el uso de este EventListener conseguiremos que al cargar nuestra aplicación principal, nuestro componente UILoader cargue a su vez nuestro segundo swf (el cual permite la interacción de las flechas del teclado).</p>
<div style="text-align: center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_ENTER_FRAME_870136299"
			class="flashmovie"
			width="350"
			height="150">
	<param name="movie" value="http://activ.com.mx/wp-content/uploads/2011/03/ENTER_FRAME.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://activ.com.mx/wp-content/uploads/2011/03/ENTER_FRAME.swf"
			name="fm_ENTER_FRAME_870136299"
			width="350"
			height="150">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object></div>
<h3>Timer</h3>
<p>Consta de una <em>lógica más avanzada</em> puesto que se ejecutara ya sea cada cierto tiempo (<span style="text-decoration: underline"><em>especificado en segundos</em></span>), lo cual hace a este EventListener la mejor opción cuando buscamos una interacción guiada por el tiempo transcurrido; por ejemplo una animación que requiere captar las acciones que realiza el usuario solo cierta cantidad de tiempo.</p>
<p><strong>Ejemplo</strong>: Tenemos un MovieClip que avanzara 5 pixeles por segundo, cada vez que el usuario de clic al botón. Si queremos que una función se lleve a cabo cada cierto tiempo, podemos hacer uso de la clase Timer para ello.</p>
<div style="text-align: center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_Timer_1769344256"
			class="flashmovie"
			width="350"
			height="150">
	<param name="movie" value="http://activ.com.mx/wp-content/uploads/2011/03/Timer.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://activ.com.mx/wp-content/uploads/2011/03/Timer.swf"
			name="fm_Timer_1769344256"
			width="350"
			height="150">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object></div>
<h2>Motores de Animación.</h2>
<p>Si bien pueden llegar a ser pocas las interpolaciones y en cierto momento podemos llegar a sentir una falta de recursos en cuanto a lo que podemos o no podemos hacer en Flash y ActionScript, tenemos la opción de incluir en nuestro proyecto un motor de animación. Estos “<em>motores</em>” no son más que <strong>clases contenidas en un swc</strong>, que nos permitirán agregar mayor alcance a nuestro proyecto (en cuanto a animación); <span style="text-decoration: underline"><em>algunos son gratuitos y algunos tienen versiones de pago</em></span>.</p>
<p>Tenemos muchas opciones de <em>terceros </em>que nos permitirán trabajar de una forma <em>más ligera y/o más rápida</em> de lo que nos da el propio Flash. Entre estos motores tenemos unos muy famosos ya sea por el renombre que el desarrollador en cuestión ha llegado a tener, o por la misma fama que el motor se ha creado en cuanto a función.</p>
<p>Los más recomendables e interesantes son: <strong>TweenLite</strong>, <strong>gTween </strong>(de <em><a href="http://gskinner.com/blog" target="_blank">Grant Skinner</a></em>), <strong>Tweener y TweenCube</strong>; los cuales abarcaremos en post siguientes de forma individual.</p>
]]></content:encoded>
			<wfw:commentRss>http://activ.com.mx/introduccion-a-la-animacion-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
