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

<channel>
	<title>Drus' blog, my stuff.</title>
	<atom:link href="http://drusunlimited.com/blog/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://drusunlimited.com/blog</link>
	<description>developing beautiful things...</description>
	<pubDate>Wed, 08 Sep 2010 09:38:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Pepe Jeans</title>
		<link>http://drusunlimited.com/blog/index.php/2010/09/08/pepe-jeans/</link>
		<comments>http://drusunlimited.com/blog/index.php/2010/09/08/pepe-jeans/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 09:22:54 +0000</pubDate>
		<dc:creator>Javier Fernández Montes</dc:creator>
		
		<category><![CDATA[Works]]></category>

		<guid isPermaLink="false">http://drusunlimited.com/blog/?p=280</guid>
		<description><![CDATA[
			
			
					
			
		

Front end flash: drus unlimited
Agencia: 101
Cliente: Pepe Jeans
]]></description>
			<content:encoded><![CDATA[<p><object
		width="663"
		height="410"
		data="http://vimeo.com/moogaloop.swf?clip_id=14768484&amp;server=vimeo.com"
		type="application/x-shockwave-flash">
			<param name="allowfullscreen" value="true" />
			<param name="allowscriptaccess" value="always" />
			<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=14768484&amp;server=vimeo.com" />		
			<embed src="http://vimeo.com/moogaloop.swf?clip_id=14768484&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ff0179&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="663" height="410"></embed>
		</object>
</p>
<p><strong>Front end flash</strong>: <a href="http://drusunlimited.com" target="_blank">drus unlimited<br />
</a><strong>Agencia</strong>: <a href="http://www.101.es/" target="_blank">101</a><br />
<strong>Cliente</strong>: <a href="http://www.pepejeans.com/" target="_blank">Pepe Jeans</a></p>
]]></content:encoded>
			<wfw:commentRss>http://drusunlimited.com/blog/index.php/2010/09/08/pepe-jeans/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wonder-wall like</title>
		<link>http://drusunlimited.com/blog/index.php/2010/03/30/wonder-wall-like/</link>
		<comments>http://drusunlimited.com/blog/index.php/2010/03/30/wonder-wall-like/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 16:53:16 +0000</pubDate>
		<dc:creator>Javier Fernández Montes</dc:creator>
		
		<category><![CDATA[AS3]]></category>

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

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

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

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

		<guid isPermaLink="false">http://drusunlimited.com/blog/?p=237</guid>
		<description><![CDATA[Tómese este post como un ejercicio tirando del hilo de cómohabráhechoesto y un homenaje a quien ha sido una fuente de inspiración desde hace años, Yugo Nakamura.
El trabajo de Yugop, wonder-wall, muestra una retícula de imágenes que reaccionan al cursor creciendo en función de la distancia de éste. La forma en que las imágenes se [...]]]></description>
			<content:encoded><![CDATA[<p>Tómese este post como un ejercicio tirando del hilo de <em>cómohabráhechoesto</em> y un homenaje a quien ha sido una fuente de inspiración desde hace años, <a href="http://www.yugop.com/">Yugo Nakamura</a>.</p>
<p>El trabajo de Yugop, <a href="http://wonder-wall.com/">wonder-wall</a>, muestra una retícula de imágenes que <strong>reaccionan al cursor creciendo en función de la distancia</strong> de éste. La forma en que las imágenes se escalan, distorsionandose, delatan además <strong>una deformación de la imagen realizada con algún sistema de triangularización</strong>.<br />
<span id="more-237"></span><br />
Ya está, ya la hemos liado, sólo necesitaba disponer de algo de tiempo para empezar a recoger el fruto de las semillas que el gusanillo de la curiosidad acababa de plantar :)</p>
<p>Hacía mucho tiempo que no había trasteado con comportamientos <em>pseudofísicos</em> y algo menos desde que había probado una clase de triangularización que formaba parte de Sandy en su más tierna infancia, pero cuando pude imaginar la retícula de imágenes <strong>sin las mismas</strong> -como una retícula de puntos que huyen del cursor- estos dos elementos crearon una imagen clarísima:</p>
<p>
<script type="text/javascript" src="http://drusunlimited.com/blog/wp-content/plugins/pb-embedflash/js/swfobject.js"></script><span class="embedflash" id="swfid4cc40bb03a5de77d91aef2b8de2d8caf"><small>(Please open the article to see the flash file or player.)</small></span><script type="text/javascript">
				var flashvars = {}; var params = {}; var attributes = {};params.allowfullscreen = "true"; params.allowscriptaccess = "always";
				swfobject.embedSWF("/labo/repulsion/gridRepulsion/Main.swf","swfid4cc40bb03a5de77d91aef2b8de2d8caf","100%","400","9.0.0","http://drusunlimited.com/blog/wp-content/plugins/pb-embedflash/swf/expressInstall.swf",flashvars,params,attributes);
		</script>
</p>
<p>Aquí está el <a href="/labo/repulsion/gridRepulsion/gridRepulsion.fla.zip">fla</a> y este es el código usado:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//</span>
&nbsp;
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">BitmapData</span>;
&nbsp;
const W:<span style="color: #0066CC;">Number</span>=<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageWidth</span>;
const H:<span style="color: #0066CC;">Number</span>=<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageHeight</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> points_ar:<span style="color: #0066CC;">Array</span>=<span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Array</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> gridWidth:<span style="color: #0066CC;">int</span>=<span style="color: #cc66cc;">14</span>;
<span style="color: #000000; font-weight: bold;">var</span> gridHeight:<span style="color: #0066CC;">int</span>=<span style="color: #cc66cc;">8</span>;
<span style="color: #000000; font-weight: bold;">var</span> patternWidth:<span style="color: #0066CC;">Number</span> = W<span style="color: #66cc66;">/</span><span style="color: #66cc66;">&#40;</span>gridWidth-<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> patternHeight:<span style="color: #0066CC;">Number</span> = H<span style="color: #66cc66;">/</span><span style="color: #66cc66;">&#40;</span>gridHeight-<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> totalgrid:<span style="color: #0066CC;">Number</span> = gridWidth<span style="color: #66cc66;">*</span>gridHeight;
<span style="color: #000000; font-weight: bold;">var</span> mouseIsdown:<span style="color: #0066CC;">Boolean</span>=<span style="color: #000000; font-weight: bold;">false</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> range = patternWidth<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">1.8</span>;
<span style="color: #000000; font-weight: bold;">var</span> speed = <span style="color: #cc66cc;">50</span>;
<span style="color: #000000; font-weight: bold;">var</span> multispeed=<span style="color: #cc66cc;">1</span>;
<span style="color: #000000; font-weight: bold;">var</span> holder:Sprite;
&nbsp;
init<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
	removeEventListener<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ADDED_TO_STAGE</span>, init<span style="color: #66cc66;">&#41;</span>;
&nbsp;
	holder=<span style="color: #000000; font-weight: bold;">new</span> Sprite<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	addChild<span style="color: #66cc66;">&#40;</span>holder<span style="color: #66cc66;">&#41;</span>;
&nbsp;
	<span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span>i=<span style="color: #cc66cc;">0</span>; i<span style="color: #66cc66;">&lt;</span>totalgrid; i++<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">var</span> step:<span style="color: #0066CC;">Number</span> = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">floor</span><span style="color: #66cc66;">&#40;</span>i<span style="color: #66cc66;">/</span>gridWidth<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #000000; font-weight: bold;">var</span> resetx:<span style="color: #0066CC;">Number</span> = i-<span style="color: #66cc66;">&#40;</span>step<span style="color: #66cc66;">*</span>gridWidth<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #000000; font-weight: bold;">var</span> point:Telltale = <span style="color: #000000; font-weight: bold;">new</span> Telltale<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		holder.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>point<span style="color: #66cc66;">&#41;</span>;
		point.<span style="color: #006600;">x</span> =point.<span style="color: #006600;">mix</span>= <span style="color: #66cc66;">&#40;</span>patternWidth<span style="color: #66cc66;">*</span>resetx<span style="color: #66cc66;">&#41;</span>;
		point.<span style="color: #006600;">y</span> =point.<span style="color: #006600;">miy</span>= <span style="color: #66cc66;">&#40;</span>step<span style="color: #66cc66;">*</span>patternHeight<span style="color: #66cc66;">&#41;</span>;
		points_ar<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>=point;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_MOVE</span>, inHandler<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_DOWN</span>, downHandler<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_UP</span>, downHandler<span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
&nbsp;
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> repulsion<span style="color: #66cc66;">&#40;</span>event:Event<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">var</span> ddx:<span style="color: #0066CC;">Number</span>=mouseX;
	<span style="color: #000000; font-weight: bold;">var</span> ddy:<span style="color: #0066CC;">Number</span>=mouseY;
	<span style="color: #000000; font-weight: bold;">var</span> ddd:<span style="color: #0066CC;">Number</span>=<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sqrt</span><span style="color: #66cc66;">&#40;</span>ddx<span style="color: #66cc66;">*</span>ddx+ddy<span style="color: #66cc66;">*</span>ddy<span style="color: #66cc66;">&#41;</span>;
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>holder.<span style="color: #006600;">hitTestPoint</span><span style="color: #66cc66;">&#40;</span>mouseX, mouseY<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		multispeed+.1<span style="color: #66cc66;">&lt;</span><span style="color: #cc66cc;">1</span> ? multispeed+=.1 : multispeed;
	<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span>
		multispeed-.1<span style="color: #66cc66;">&gt;</span><span style="color: #cc66cc;">0</span> ? multispeed-=.1 : multispeed;
	<span style="color: #66cc66;">&#125;</span>
	holder.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">clear</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
	<span style="color: #000000; font-weight: bold;">var</span> l:uint=points_ar.<span style="color: #0066CC;">length</span>;
	<span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> i = <span style="color: #cc66cc;">0</span>; i <span style="color: #66cc66;">&lt;</span> l; i++<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">var</span> point=points_ar<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>;
		<span style="color: #000000; font-weight: bold;">var</span> dx = mouseX- point.<span style="color: #006600;">x</span>;
		<span style="color: #000000; font-weight: bold;">var</span> dy = mouseY - point.<span style="color: #006600;">y</span>;
		<span style="color: #000000; font-weight: bold;">var</span> distance = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sqrt</span><span style="color: #66cc66;">&#40;</span>dx<span style="color: #66cc66;">*</span>dx + dy<span style="color: #66cc66;">*</span>dy<span style="color: #66cc66;">&#41;</span>;
&nbsp;
		point.<span style="color: #006600;">x</span>=<span style="color: #66cc66;">&#40;</span>point.<span style="color: #006600;">x</span>-<span style="color: #66cc66;">&#40;</span>dx<span style="color: #66cc66;">/</span>distance<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #66cc66;">&#40;</span>range<span style="color: #66cc66;">/</span>distance<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span>speed<span style="color: #66cc66;">*</span>multispeed<span style="color: #66cc66;">&#41;</span>-<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>point.<span style="color: #006600;">x</span>-point.<span style="color: #006600;">mix</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">/</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
		point.<span style="color: #006600;">y</span>=<span style="color: #66cc66;">&#40;</span>point.<span style="color: #006600;">y</span>-<span style="color: #66cc66;">&#40;</span>dy<span style="color: #66cc66;">/</span>distance<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #66cc66;">&#40;</span>range<span style="color: #66cc66;">/</span>distance<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span>speed<span style="color: #66cc66;">*</span>multispeed<span style="color: #66cc66;">&#41;</span>-<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>point.<span style="color: #006600;">y</span>-point.<span style="color: #006600;">miy</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">/</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>mouseIsdown<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
			holder.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">lineStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,0x000000,.5<span style="color: #66cc66;">&#41;</span>;
			holder.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">moveTo</span><span style="color: #66cc66;">&#40;</span>point.<span style="color: #006600;">mix</span>, point.<span style="color: #006600;">miy</span><span style="color: #66cc66;">&#41;</span>;
			holder.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span>point.<span style="color: #006600;">x</span>, point.<span style="color: #006600;">y</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> downHandler<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
	playwithme.<span style="color: #0066CC;">visible</span>=playwithme.<span style="color: #0066CC;">visible</span>==<span style="color: #000000; font-weight: bold;">true</span> ? <span style="color: #000000; font-weight: bold;">false</span> : playwithme.<span style="color: #0066CC;">visible</span>;
	mouseIsdown=<span style="color: #66cc66;">!</span>mouseIsdown;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">function</span> leaveHandler<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
	removeEventListener<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, repulsion<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_MOVE</span>, inHandler<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">function</span> inHandler<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">removeEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_MOVE</span>, inHandler<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">MOUSE_LEAVE</span>, leaveHandler<span style="color: #66cc66;">&#41;</span>;
	addEventListener<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, repulsion<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Ya solo quedaba usar esos puntos para alimentar la clase de triangularización en versión AS3, de la que pude encontrar dos versiones en <a href="http://www.flashsandy.org/blog/distortimage-in-as3.html">el blog de Sandy 3D</a>, una de <em>by Alex</em> y otra <em>by Carles Sanz</em>, que fue la que usé.</p>
<p>Un clip invisible que sigue al puntero con cierta fricción era lo que faltaba para restarle brusquedad a las reacciones de los puntos.</p>
<p>
<script type="text/javascript" src="http://drusunlimited.com/blog/wp-content/plugins/pb-embedflash/js/swfobject.js"></script><span class="embedflash" id="swfid0c6316f1196e696b78c3ea5df4564a13"><small>(Please open the article to see the flash file or player.)</small></span><script type="text/javascript">
				var flashvars = {}; var params = {}; var attributes = {};params.allowfullscreen = "true"; params.allowscriptaccess = "always";
				swfobject.embedSWF("/labo/wonderwall-like/Main.swf","swfid0c6316f1196e696b78c3ea5df4564a13","100%","293","9.0.0","http://drusunlimited.com/blog/wp-content/plugins/pb-embedflash/swf/expressInstall.swf",flashvars,params,attributes);
		</script>
</p>
<p>Hay que señalar que el comportamiento no es exactamente igual, el original está mucho más trabajado, detectando el rollover sobre las imágenes para crear un <em>escalón virtual</em> que se salta cuando pasas de una imagen a otra y evitando de ese modo ambiguedades en el comportamiento de los puntos cuando te encuentras cerca de los límites de cada imagen.</p>
]]></content:encoded>
			<wfw:commentRss>http://drusunlimited.com/blog/index.php/2010/03/30/wonder-wall-like/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Lab: APE Physics Car</title>
		<link>http://drusunlimited.com/blog/index.php/2009/07/05/lab-ape-physics-car/</link>
		<comments>http://drusunlimited.com/blog/index.php/2009/07/05/lab-ape-physics-car/#comments</comments>
		<pubDate>Sun, 05 Jul 2009 03:00:42 +0000</pubDate>
		<dc:creator>Javier Fernández Montes</dc:creator>
		
		<category><![CDATA[Lab]]></category>

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

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

		<guid isPermaLink="false">http://drusunlimited.com/blog/?p=228</guid>
		<description><![CDATA[A veces la curiosidad me puede&#8230; La semana pasada estuve buscando una librería de física en AS2, que no encontré, pero gracias a ello pude ver varias de las librerías actuales.
Este es un ejercicio experimental de un coche con física, usando la librería APE, sin duda la más sencilla de utilizar.

Clicka sobre la película para [...]]]></description>
			<content:encoded><![CDATA[<p>A veces la curiosidad me puede&#8230; La semana pasada estuve buscando una librería de física en AS2, que no encontré, pero gracias a ello pude ver varias de las librerías actuales.<br />
Este es un ejercicio experimental de un coche con física, usando la librería <a href="http://www.cove.org/ape/" target="_blank">APE</a>, sin duda la más sencilla de utilizar.</p>
<p><span id="more-228"></span><br />
Clicka sobre la película para comenzar y usa las teclas de dirección. Para reiniciarlo pulsa tecla arriba o haz click de nuevo.<br />
<script type="text/javascript" src="http://drusunlimited.com/blog/wp-content/plugins/pb-embedflash/js/swfobject.js"></script><span class="embedflash" id="swfidc0b133df4ab8320235ae4ecd2af2ea8d"><small>(Please open the article to see the flash file or player.)</small></span><script type="text/javascript">
				var flashvars = {}; var params = {}; var attributes = {};params.allowfullscreen = "true"; params.allowscriptaccess = "always";
				swfobject.embedSWF("/labo/physics/APE_car/Main.swf","swfidc0b133df4ab8320235ae4ecd2af2ea8d","100%","400","9.0.0","http://drusunlimited.com/blog/wp-content/plugins/pb-embedflash/swf/expressInstall.swf",flashvars,params,attributes);
		</script></p>
]]></content:encoded>
			<wfw:commentRss>http://drusunlimited.com/blog/index.php/2009/07/05/lab-ape-physics-car/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Lab: PV3D trampantojo</title>
		<link>http://drusunlimited.com/blog/index.php/2009/06/30/lab-pv3d-trampantojo/</link>
		<comments>http://drusunlimited.com/blog/index.php/2009/06/30/lab-pv3d-trampantojo/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 02:33:03 +0000</pubDate>
		<dc:creator>Javier Fernández Montes</dc:creator>
		
		<category><![CDATA[Lab]]></category>

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

		<guid isPermaLink="false">http://drusunlimited.com/blog/?p=211</guid>
		<description><![CDATA[Tonteando con papervision.

(Please open the article to see the flash file or player.)
				var flashvars = {}; var params = {}; var attributes = {};params.allowfullscreen = "true"; params.allowscriptaccess = "always";
				swfobject.embedSWF("/labo/papervision/trampantojo/Main.swf","swfidd7ba3f0a8c3c4ddd546a43e14360567d","100%","400","9.0.0","http://drusunlimited.com/blog/wp-content/plugins/pb-embedflash/swf/expressInstall.swf",flashvars,params,attributes);
		
]]></description>
			<content:encoded><![CDATA[<p>Tonteando con papervision.<br />
<span id="more-211"></span><br />
<script type="text/javascript" src="http://drusunlimited.com/blog/wp-content/plugins/pb-embedflash/js/swfobject.js"></script><span class="embedflash" id="swfid459954afc63d872c6527c22f94b6ed50"><small>(Please open the article to see the flash file or player.)</small></span><script type="text/javascript">
				var flashvars = {}; var params = {}; var attributes = {};params.allowfullscreen = "true"; params.allowscriptaccess = "always";
				swfobject.embedSWF("/labo/papervision/trampantojo/Main.swf","swfid459954afc63d872c6527c22f94b6ed50","100%","400","9.0.0","http://drusunlimited.com/blog/wp-content/plugins/pb-embedflash/swf/expressInstall.swf",flashvars,params,attributes);
		</script></p>
]]></content:encoded>
			<wfw:commentRss>http://drusunlimited.com/blog/index.php/2009/06/30/lab-pv3d-trampantojo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ola Heineken</title>
		<link>http://drusunlimited.com/blog/index.php/2009/03/31/ola-heineken/</link>
		<comments>http://drusunlimited.com/blog/index.php/2009/03/31/ola-heineken/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 22:26:58 +0000</pubDate>
		<dc:creator>Javier Fernández Montes</dc:creator>
		
		<category><![CDATA[Works]]></category>

		<guid isPermaLink="false">http://drusunlimited.com/blog/?p=163</guid>
		<description><![CDATA[Desarrollo flash para una campaña promocional de Heineken, basada en la generación de una &#8220;ola&#8221; por medio de un mapa de desplazamiento, sobre un texto introducido por el usuario.


			
			
					
			
		

Productora: UVE digital producers
Agencia: MRM
Cliente: Heineken
Promoción: A un click de la final
]]></description>
			<content:encoded><![CDATA[<p>Desarrollo flash para una campaña promocional de Heineken, basada en la generación de una &#8220;ola&#8221; por medio de un mapa de desplazamiento, sobre un texto introducido por el usuario.<br />
<span id="more-163"></span><br />
<object
		width="663"
		height="410"
		data="http://vimeo.com/moogaloop.swf?clip_id=3943771&amp;server=vimeo.com"
		type="application/x-shockwave-flash">
			<param name="allowfullscreen" value="true" />
			<param name="allowscriptaccess" value="always" />
			<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=3943771&amp;server=vimeo.com" />		
			<embed src="http://vimeo.com/moogaloop.swf?clip_id=3943771&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ff0179&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="663" height="410"></embed>
		</object>
</p>
<p><strong>Productora</strong>: <a href="http://uveproducers.com" target="_blank">UVE digital producers<br />
</a><strong>Agencia</strong>: <a href="http://www.mrmworldwide.com" target="_blank">MRM</a><br />
<strong>Cliente</strong>: <a href="http://heineken.es/" target="_blank">Heineken</a><br />
<strong>Promoción</strong>: <a href="http://www.aunclickdelafinal.com/ola_dedicada/index.html?v=06407207507302007506e06c06906d069074065064" target="_blank">A un click de la final</a></p>
]]></content:encoded>
			<wfw:commentRss>http://drusunlimited.com/blog/index.php/2009/03/31/ola-heineken/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Desaturar un DisplayObject con ColorMatrixFilter</title>
		<link>http://drusunlimited.com/blog/index.php/2009/03/28/desaturar-un-displayobject-con-colormatrixfilter/</link>
		<comments>http://drusunlimited.com/blog/index.php/2009/03/28/desaturar-un-displayobject-con-colormatrixfilter/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 11:52:37 +0000</pubDate>
		<dc:creator>Javier Fernández Montes</dc:creator>
		
		<category><![CDATA[AS3]]></category>

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

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

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

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

		<guid isPermaLink="false">http://drusunlimited.com/blog/?p=139</guid>
		<description><![CDATA[La clase ColorMatrixFilter nos permite aplicar una matriz de transformación RGBA (rojo, verde, azul, alfa) a nivel de pixel sobre cualquier DisplayObject, a través de la propiedad heredada filters.
(Please open the article to see the flash file or player.)

En este caso he creado una clase utillería, ColorUtils, con métodos estáticos para pasar a blanco y [...]]]></description>
			<content:encoded><![CDATA[<p>La clase <em><a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/filters/ColorMatrixFilter.html" target="_BLANK">ColorMatrixFilter</a></em> nos permite aplicar una matriz de transformación RGBA (rojo, verde, azul, alfa) a nivel de pixel sobre cualquier DisplayObject, a través de la propiedad heredada <em>filters</em>.</p>
<p><object type="application/x-shockwave-flash" data="http://drusunlimited.com/blog/wp-content/uploads/2009/03/desaturate.swf" width="100%" height="430" class="embedflash"><param name="movie" value="http://drusunlimited.com/blog/wp-content/uploads/2009/03/desaturate.swf" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><small>(Please open the article to see the flash file or player.)</small></object><br />
<span id="more-139"></span><br />
En este caso he creado una clase utillería, ColorUtils, con métodos estáticos para pasar a blanco y negro (desaturate), así como para eliminar cualquier filtro aplicado y devolver el objeto a su estado original (restore).</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//</span>
package utils<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">DisplayObject</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">filters</span>.<span style="color: #006600;">ColorMatrixFilter</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ColorUtils<span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #0066CC;">static</span> <span style="color: #000000; font-weight: bold;">function</span> desaturate<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">target</span>:DisplayObject<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> el_ar:<span style="color: #0066CC;">Array</span> = <span style="color: #66cc66;">&#91;</span>
			<span style="color: #cc66cc;">0.3</span>, <span style="color: #cc66cc;">0.59</span>, <span style="color: #cc66cc;">0.11</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #808080; font-style: italic;">//R</span>
			<span style="color: #cc66cc;">0.3</span>, <span style="color: #cc66cc;">0.59</span>, <span style="color: #cc66cc;">0.11</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #808080; font-style: italic;">//G</span>
			<span style="color: #cc66cc;">0.3</span>, <span style="color: #cc66cc;">0.59</span>, <span style="color: #cc66cc;">0.11</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #808080; font-style: italic;">//B</span>
			<span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span>; <span style="color: #808080; font-style: italic;">//A</span>
			<span style="color: #000000; font-weight: bold;">var</span> cm_filter:ColorMatrixFilter = <span style="color: #000000; font-weight: bold;">new</span> ColorMatrixFilter<span style="color: #66cc66;">&#40;</span>el_ar<span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">target</span>.<span style="color: #006600;">filters</span> = <span style="color: #66cc66;">&#91;</span>cm_filter<span style="color: #66cc66;">&#93;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #0066CC;">static</span> <span style="color: #000000; font-weight: bold;">function</span> restore<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">target</span>:DisplayObject<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">target</span>.<span style="color: #006600;">filters</span> = <span style="color: #000000; font-weight: bold;">null</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
<span style="color: #808080; font-style: italic;">//</span></pre></div></div>

<p>Para usar estos métodos, es suficiente con llamarlos como hacemos con cualquier método de la clase Math por ejemplo, pasando como parámetro el DisplayObject sobre el que queremos aplicar la transformación de color.</p>
<p>Así, para desaturar un MovieClip llamado <em>item</em> haríamos:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//</span>
<span style="color: #0066CC;">import</span> utils.<span style="color: #006600;">ColorUtils</span>;
ColorUtils.<span style="color: #006600;">desaturate</span><span style="color: #66cc66;">&#40;</span>item<span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//</span></pre></div></div>

<p>Y para devolverlo a su estado original haríamos:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//</span>
<span style="color: #0066CC;">import</span> utils.<span style="color: #006600;">ColorUtils</span>;
ColorUtils.<span style="color: #006600;">restore</span><span style="color: #66cc66;">&#40;</span>item<span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://drusunlimited.com/blog/index.php/2009/03/28/desaturar-un-displayobject-con-colormatrixfilter/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Lab: curveTo</title>
		<link>http://drusunlimited.com/blog/index.php/2009/03/02/curveto/</link>
		<comments>http://drusunlimited.com/blog/index.php/2009/03/02/curveto/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 00:47:34 +0000</pubDate>
		<dc:creator>Javier Fernández Montes</dc:creator>
		
		<category><![CDATA[Lab]]></category>

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

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

		<guid isPermaLink="false">http://drusunlimited.com/blog/?p=119</guid>
		<description><![CDATA[Trabajando con la API de dibujo de AS3 y algo de física.

(Please open the article to see the flash file or player.)
				var flashvars = {}; var params = {}; var attributes = {};params.allowfullscreen = "true"; params.allowscriptaccess = "always";
				swfobject.embedSWF("/labo/AS3/curveTo/Main.swf","swfid2972a4e2a7e419e4b431e69421a7b6e5","100%","400","9.0.0","http://drusunlimited.com/blog/wp-content/plugins/pb-embedflash/swf/expressInstall.swf",flashvars,params,attributes);
		

var elasticidad:Number = .98;
var aceleracion:Number = .01;
var gravedad:Number = .9;
var color:Number = 0x9EA3A3;
var conteLinea:Shape;
var newx:Number=0;
var newy:Number=0;
&#160;
function fDraw&#40;&#41;:void&#123;
	conteLinea.graphics.clear&#40;&#41;;
	conteLinea.graphics.lineStyle&#40;0, color&#41;;
	conteLinea.graphics.moveTo&#40;pointA.x, [...]]]></description>
			<content:encoded><![CDATA[<p>Trabajando con la API de dibujo de AS3 y algo de física.<br />
<span id="more-119"></span><br />
<script type="text/javascript" src="http://drusunlimited.com/blog/wp-content/plugins/pb-embedflash/js/swfobject.js"></script><span class="embedflash" id="swfid18f637280f7b90bb1813b76b0fc800bc"><small>(Please open the article to see the flash file or player.)</small></span><script type="text/javascript">
				var flashvars = {}; var params = {}; var attributes = {};params.allowfullscreen = "true"; params.allowscriptaccess = "always";
				swfobject.embedSWF("/labo/AS3/curveTo/Main.swf","swfid18f637280f7b90bb1813b76b0fc800bc","100%","400","9.0.0","http://drusunlimited.com/blog/wp-content/plugins/pb-embedflash/swf/expressInstall.swf",flashvars,params,attributes);
		</script></p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> elasticidad:<span style="color: #0066CC;">Number</span> = .98;
<span style="color: #000000; font-weight: bold;">var</span> aceleracion:<span style="color: #0066CC;">Number</span> = .01;
<span style="color: #000000; font-weight: bold;">var</span> gravedad:<span style="color: #0066CC;">Number</span> = .9;
<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">color</span>:<span style="color: #0066CC;">Number</span> = 0x9EA3A3;
<span style="color: #000000; font-weight: bold;">var</span> conteLinea:Shape;
<span style="color: #000000; font-weight: bold;">var</span> newx:<span style="color: #0066CC;">Number</span>=<span style="color: #cc66cc;">0</span>;
<span style="color: #000000; font-weight: bold;">var</span> newy:<span style="color: #0066CC;">Number</span>=<span style="color: #cc66cc;">0</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> fDraw<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
	conteLinea.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">clear</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	conteLinea.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">lineStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #0066CC;">color</span><span style="color: #66cc66;">&#41;</span>;
	conteLinea.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">moveTo</span><span style="color: #66cc66;">&#40;</span>pointA.<span style="color: #006600;">x</span>, pointA.<span style="color: #006600;">y</span><span style="color: #66cc66;">&#41;</span>;
	conteLinea.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">curveTo</span><span style="color: #66cc66;">&#40;</span>anchor.<span style="color: #006600;">x</span>, anchor.<span style="color: #006600;">y</span>, pointB.<span style="color: #006600;">x</span>, pointB.<span style="color: #006600;">y</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> fInercia<span style="color: #66cc66;">&#40;</span>event:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">var</span> targetx:<span style="color: #0066CC;">Number</span> = <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>pointB.<span style="color: #006600;">x</span>-pointA.<span style="color: #006600;">x</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">/</span><span style="color: #cc66cc;">2</span>+pointA.<span style="color: #006600;">x</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #000000; font-weight: bold;">var</span> targety:<span style="color: #0066CC;">Number</span> = <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>pointB.<span style="color: #006600;">y</span>-pointA.<span style="color: #006600;">y</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">/</span><span style="color: #cc66cc;">2</span>+pointA.<span style="color: #006600;">y</span><span style="color: #66cc66;">&#41;</span>;
	newx = newx<span style="color: #66cc66;">*</span>elasticidad+<span style="color: #66cc66;">&#40;</span>targetx-anchor.<span style="color: #006600;">x</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span>aceleracion;
	newy = newy<span style="color: #66cc66;">*</span>elasticidad+<span style="color: #66cc66;">&#40;</span>targety-anchor.<span style="color: #006600;">y</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span>aceleracion+gravedad;
	anchor.<span style="color: #006600;">x</span> += newx;
	anchor.<span style="color: #006600;">y</span> += newy;
	fDraw<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">abs</span><span style="color: #66cc66;">&#40;</span>newx<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&amp;</span>lt;.01 <span style="color: #66cc66;">&amp;</span>amp;<span style="color: #66cc66;">&amp;</span>amp; <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">abs</span><span style="color: #66cc66;">&#40;</span>newy<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&amp;</span>lt;.01<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		anchor.<span style="color: #006600;">removeEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, fInercia<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> fPress<span style="color: #66cc66;">&#40;</span>event:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_UP</span>,fRelease<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">color</span> = 0xff0179;
	event.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">startDrag</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	anchor.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, fInercia<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> fRelease<span style="color: #66cc66;">&#40;</span>event:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">removeEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_UP</span>,fRelease<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">color</span> = 0x9EA3A3;
	<span style="color: #0066CC;">stopDrag</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> setListeners<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
	pointA.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_DOWN</span>,fPress, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
	pointB.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_DOWN</span>,fPress, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
	pointA.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_UP</span>,fRelease, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
	pointB.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_UP</span>,fRelease, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
	anchor.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, fInercia<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> fInit<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
	conteLinea=<span style="color: #000000; font-weight: bold;">new</span> Shape<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	addChild<span style="color: #66cc66;">&#40;</span>conteLinea<span style="color: #66cc66;">&#41;</span>;
	setListeners<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
fInit<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p><a href="http://drusunlimited.com/labo/AS3/curveTo/curveTo.fla.zip"><strong>Descarga los fuentes</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://drusunlimited.com/blog/index.php/2009/03/02/curveto/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Deshabilitar todos los botones de una aplicación</title>
		<link>http://drusunlimited.com/blog/index.php/2009/03/01/deshabilitar-todos-los-botones-de-una-aplicacion/</link>
		<comments>http://drusunlimited.com/blog/index.php/2009/03/01/deshabilitar-todos-los-botones-de-una-aplicacion/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 19:42:10 +0000</pubDate>
		<dc:creator>Javier Fernández Montes</dc:creator>
		
		<category><![CDATA[AS3]]></category>

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

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

		<guid isPermaLink="false">http://drusunlimited.com/blog/?p=99</guid>
		<description><![CDATA[Este es un trucazo que comentó el otro día Joseba Alonso en la lista de asnativos, y que me parece tan bueno que no me puedo resistir a publicarlo.
En ocasiones nos encontramos con la necesidad de deshabilitar todos los elementos interactivos de nuestra película mientras por ejemplo esperamos una respuesta del servidor. En AS2 esto [...]]]></description>
			<content:encoded><![CDATA[<p>Este es un trucazo que comentó el otro día <a href="http://www.sidedev.net/blog/">Joseba Alonso</a> en la lista de asnativos, y que me parece tan bueno que no me puedo resistir a publicarlo.</p>
<p>En ocasiones nos encontramos con la necesidad de deshabilitar todos los elementos interactivos de nuestra película mientras por ejemplo esperamos una respuesta del servidor. <span id="more-99"></span>En AS2 esto acostumbraba a hacerlo de una forma un tanto regular, aunque efectiva, consistente en colocar un botón del tamaño del escenario con el <em>useHandCursor</em> a false sobre todos los elementos de la película, para luego retirarlo una vez recibida la respuesta.</p>
<p><strong>En AS3, y gracias al <em>burbujeo</em> de eventos, esto lo podemos solucionar de una forma muchísimo más elegante, con una sola línea y sin necesidad de &#8220;tapar&#8221; nada:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//</span>
&nbsp;
<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">mouseChildren</span> = <span style="color: #000000; font-weight: bold;">false</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">//</span></pre></div></div>

<p>Una evidencia más de la positiva evolución del lenguaje ;-)</p>
<p> </p>
<hr />
<strong><span style="background-color:#ff0179; color:#ffffff;">Actualización</span></strong><br />
Como comenta <a href="http://yporqueno.es/blog/" target="_blank">Iván</a>, ya solo queda deshabilitar la tabulación por teclado, cosa que podemos hacer del mismo modo sobre el stage, quedando así:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//</span>
<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">mouseChildren</span> = <span style="color: #000000; font-weight: bold;">false</span>;
<span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">tabEnabled</span> = <span style="color: #000000; font-weight: bold;">false</span>;
<span style="color: #808080; font-style: italic;">//</span></pre></div></div>

<p>Gracias por el dato!!</p>
]]></content:encoded>
			<wfw:commentRss>http://drusunlimited.com/blog/index.php/2009/03/01/deshabilitar-todos-los-botones-de-una-aplicacion/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ronda Coca-Cola</title>
		<link>http://drusunlimited.com/blog/index.php/2009/02/11/ronda-coca-cola/</link>
		<comments>http://drusunlimited.com/blog/index.php/2009/02/11/ronda-coca-cola/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 22:16:55 +0000</pubDate>
		<dc:creator>Javier Fernández Montes</dc:creator>
		
		<category><![CDATA[Works]]></category>

		<guid isPermaLink="false">http://drusunlimited.com/blog/?p=58</guid>
		<description><![CDATA[
			
			
					
			
		

Productora: UVE digital producers
Agencia: Momentum
Dirección de arte: Agustín Ocampo
Cliente: Coca-Cola
]]></description>
			<content:encoded><![CDATA[<p><object
		width="663"
		height="410"
		data="http://vimeo.com/moogaloop.swf?clip_id=2718915&amp;server=vimeo.com"
		type="application/x-shockwave-flash">
			<param name="allowfullscreen" value="true" />
			<param name="allowscriptaccess" value="always" />
			<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=2718915&amp;server=vimeo.com" />		
			<embed src="http://vimeo.com/moogaloop.swf?clip_id=2718915&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ff0179&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="663" height="410"></embed>
		</object>
</p>
<p><strong>Productora</strong>: <a href="http://uveproducers.com" target="_blank">UVE digital producers<br />
</a><strong>Agencia</strong>: <a href="http://www.momentumww.com/" target="_blank">Momentum</a><br />
<strong>Dirección de arte</strong>: <a href="http://www.atajografico.com/" target="_blank">Agustín Ocampo</a><br />
<strong>Cliente</strong>: <a href="http://ronda.cocacola.es/" target="_blank">Coca-Cola</a></p>
]]></content:encoded>
			<wfw:commentRss>http://drusunlimited.com/blog/index.php/2009/02/11/ronda-coca-cola/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Precargas en Flex</title>
		<link>http://drusunlimited.com/blog/index.php/2009/02/10/precargas-en-flex/</link>
		<comments>http://drusunlimited.com/blog/index.php/2009/02/10/precargas-en-flex/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 09:53:33 +0000</pubDate>
		<dc:creator>Javier Fernández Montes</dc:creator>
		
		<category><![CDATA[AS3]]></category>

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

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

		<guid isPermaLink="false">http://drusunlimited.com/blog/?p=36</guid>
		<description><![CDATA[Este post es una adaptación traducida al castellano, a petición del público, del método que nos muestran en este post de bit-101.
Hasta ahora para hacer una precarga bastaba con añadir un par de fotogramas en los que situarla al principio de nuestra película. Acostumbrados a tener nuestra línea de tiempo, cuando desarrollamos un site en [...]]]></description>
			<content:encoded><![CDATA[<p>Este post es una adaptación traducida al castellano, a petición del público, del método que nos muestran en <a href="http://www.bit-101.com/blog/?p=946" target="_blank">este post de bit-101</a>.</p>
<p>Hasta ahora para hacer una precarga bastaba con añadir un par de fotogramas en los que situarla al principio de nuestra película. Acostumbrados a tener nuestra línea de tiempo, cuando desarrollamos un site en flex nos encontramos que al no tener línea de tiempo la tarea de elaborar la precarga más simple se convierte en un obstáculo.<span id="more-36"></span></p>
<p>Afortunadamente flex tiene unas tags propias (sí, sí, esas que van entre corchetes []), que se ejecutan en el momento de compilar y al igual que nos permiten establecer la velocidad de la película, el color de fondo, etc. también nos permite insertar fotogramas, de forma que podemos añadir esos añorados fotogramas donde situar nuestra precarga :)</p>
<p>Básicamente necesitaremos solo un par de cosas: <strong>una clase que maneje nuestra precarga y una de las mencionadas tags en la clase principal que añade un frame previo a la película en el cual se sitúa la clase de precarga</strong>.</p>
<p>La línea que debemos añadir en nuestra clase principal, justo depués de los imports, sería algo así:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&#91;</span>Frame<span style="color: #66cc66;">&#40;</span>factoryClass=<span style="color: #ff0000;">&quot;com.uveproducers.utils.Preload&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span></pre></div></div>

<p>La clase de precarga ya la elaboramos a nuestra medida, con la única objeción de que una vez realizada la carga llamemos a un método que coloque la clase principal de nuevo en su sitio:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
        <span style="color: #66cc66;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">var</span> mainClass:<span style="color: #000000; font-weight: bold;">Class</span> = <span style="color: #000000; font-weight: bold;">Class</span><span style="color: #66cc66;">&#40;</span>getDefinitionByName<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Main&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>mainClass<span style="color: #66cc66;">&#41;</span>
            <span style="color: #66cc66;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">var</span> app:<span style="color: #0066CC;">Object</span> = <span style="color: #000000; font-weight: bold;">new</span> mainClass<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
                addChild<span style="color: #66cc66;">&#40;</span>app as DisplayObject<span style="color: #66cc66;">&#41;</span>;
            <span style="color: #66cc66;">&#125;</span>
        <span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>en mi caso, la forma en que lo apliqué en el site de <a href="http://www.coolshotfilms.com/dev">coolShot</a>, fue esta:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package com.<span style="color: #006600;">uveproducers</span>.<span style="color: #006600;">utils</span>
<span style="color: #66cc66;">&#123;</span>
    <span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">DisplayObject</span>;
    <span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #0066CC;">MovieClip</span>;
    <span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
    <span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">StageAlign</span>;
    <span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">StageScaleMode</span>;
    <span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;
    <span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">utils</span>.<span style="color: #006600;">getDefinitionByName</span>;
&nbsp;
   <span style="color: #66cc66;">&#91;</span>SWF<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">backgroundColor</span>=<span style="color: #ff0000;">&quot;#262116&quot;</span>,framerate=<span style="color: #ff0000;">&quot;31&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
&nbsp;
   <span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Preload <span style="color: #0066CC;">extends</span> <span style="color: #0066CC;">MovieClip</span>
    <span style="color: #66cc66;">&#123;</span>
        <span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> preloadHolder:Sprite;
        <span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> holderGraphicBar1:Sprite;
        <span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> holderGraphicBar2:Sprite;
&nbsp;
        <span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Preload<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#123;</span>
            <span style="color: #0066CC;">stop</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">scaleMode</span> = StageScaleMode.<span style="color: #006600;">NO_SCALE</span>;
            <span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">align</span> = StageAlign.<span style="color: #006600;">TOP_LEFT</span>;
            <span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageFocusRect</span>=<span style="color: #000000; font-weight: bold;">false</span>;
            addEventListener<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, <span style="color: #0066CC;">onEnterFrame</span><span style="color: #66cc66;">&#41;</span>;
            preloadHolder=<span style="color: #000000; font-weight: bold;">new</span> Sprite<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>preloadHolder<span style="color: #66cc66;">&#41;</span>;
            holderGraphicBar1=<span style="color: #000000; font-weight: bold;">new</span> Sprite<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
            preloadHolder.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>holderGraphicBar1<span style="color: #66cc66;">&#41;</span>;
            holderGraphicBar2=<span style="color: #000000; font-weight: bold;">new</span> Sprite<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
            preloadHolder.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>holderGraphicBar2<span style="color: #66cc66;">&#41;</span>;
            holderGraphicBar1.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xE4DFD5,.3<span style="color: #66cc66;">&#41;</span>;
            holderGraphicBar1.<span style="color: #006600;">graphics</span>.<span style="color: #006600;">drawRect</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">54</span>, <span style="color: #cc66cc;">68</span>, <span style="color: #cc66cc;">800</span>, <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
            holderGraphicBar1.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #66cc66;">&#125;</span>
&nbsp;
        <span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">onEnterFrame</span><span style="color: #66cc66;">&#40;</span>event:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
        <span style="color: #66cc66;">&#123;</span>
            holderGraphicBar2.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">clear</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>framesLoaded == totalFrames<span style="color: #66cc66;">&#41;</span>
            <span style="color: #66cc66;">&#123;</span>
                removeEventListener<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, <span style="color: #0066CC;">onEnterFrame</span><span style="color: #66cc66;">&#41;</span>;
                <span style="color: #0066CC;">nextFrame</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
                init<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #66cc66;">&#125;</span>
            <span style="color: #b1b100;">else</span>
            <span style="color: #66cc66;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">var</span> percent:<span style="color: #0066CC;">Number</span> = root.<span style="color: #006600;">loaderInfo</span>.<span style="color: #0066CC;">bytesLoaded</span> <span style="color: #66cc66;">/</span> root.<span style="color: #006600;">loaderInfo</span>.<span style="color: #0066CC;">bytesTotal</span>;
                holderGraphicBar2.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xE4DFD5<span style="color: #66cc66;">&#41;</span>;
                holderGraphicBar2.<span style="color: #006600;">graphics</span>.<span style="color: #006600;">drawRect</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">54</span>, <span style="color: #cc66cc;">68</span>, <span style="color: #cc66cc;">800</span> <span style="color: #66cc66;">*</span> percent, <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
                holderGraphicBar2.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #66cc66;">&#125;</span>
        <span style="color: #66cc66;">&#125;</span>
&nbsp;
        <span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
        <span style="color: #66cc66;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">var</span> mainClass:<span style="color: #000000; font-weight: bold;">Class</span> = <span style="color: #000000; font-weight: bold;">Class</span><span style="color: #66cc66;">&#40;</span>getDefinitionByName<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Main&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>mainClass<span style="color: #66cc66;">&#41;</span>
            <span style="color: #66cc66;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">var</span> app:<span style="color: #0066CC;">Object</span> = <span style="color: #000000; font-weight: bold;">new</span> mainClass<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
                addChild<span style="color: #66cc66;">&#40;</span>app as DisplayObject<span style="color: #66cc66;">&#41;</span>;
            <span style="color: #66cc66;">&#125;</span>
        <span style="color: #66cc66;">&#125;</span>
    <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Nota: puede ser necesario que la clase principal compruebe que ha sido instanciada en el escenario antes de inicializarse, para lo cual podemos usar el evento ADDED_TO_STAGE</p>
]]></content:encoded>
			<wfw:commentRss>http://drusunlimited.com/blog/index.php/2009/02/10/precargas-en-flex/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
