<?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/"
		xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>untoldentertainment.com &#187; Turo</title>
	<atom:link href="http://www.untoldentertainment.com/blog/tag/turo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.untoldentertainment.com/blog</link>
	<description>We Make Flash Games</description>
	<lastBuildDate>Wed, 01 Feb 2012 15:18:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<copyright>Copyright &#xA9; untoldentertainment.com 2011 </copyright>
	<managingEditor>ryan@untoldentertainment.com (untoldentertainment.com)</managingEditor>
	<webMaster>ryan@untoldentertainment.com (untoldentertainment.com)</webMaster>
	<image>
		<url>http://www.untoldentertainment.com/blog/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
		<title>untoldentertainment.com</title>
		<link>http://www.untoldentertainment.com/blog</link>
		<width>144</width>
		<height>144</height>
	</image>
	<itunes:subtitle></itunes:subtitle>
	<itunes:summary>We Make Flash Games</itunes:summary>
	<itunes:keywords></itunes:keywords>
	<itunes:category text="Society &#38; Culture" />
	<itunes:author>untoldentertainment.com</itunes:author>
	<itunes:owner>
		<itunes:name>untoldentertainment.com</itunes:name>
		<itunes:email>ryan@untoldentertainment.com</itunes:email>
	</itunes:owner>
	<itunes:block>no</itunes:block>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://www.untoldentertainment.com/blog/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<item>
		<title>Tutorial: Building a Flash/AS3 FPS ( frames per second) counter</title>
		<link>http://www.untoldentertainment.com/blog/2009/04/09/tutorial-building-a-fps-frames-per-second-counter/</link>
		<comments>http://www.untoldentertainment.com/blog/2009/04/09/tutorial-building-a-fps-frames-per-second-counter/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 14:22:14 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Turo]]></category>

		<guid isPermaLink="false">http://www.untoldentertainment.com/blog/?p=1073</guid>
		<description><![CDATA[Often when building games or other graphically complex flash applications it is important to gauge performance on different systems or in different browsers. Flash Player has no built in way to do this other than to eyeball the resulting playback and make a guess. Fortunately with some simple calculations this can be solved. Here Comes [...]]]></description>
			<content:encoded><![CDATA[<p>Often when building games or other graphically complex flash applications it is important to gauge performance on different systems or in different browsers. Flash Player has no built in way to do this other than to eyeball the resulting playback and make a guess. Fortunately with some simple calculations this can be solved.</p>
<h2>Here Comes the Code</h2>
<p>Here is the code for a simple FPS counter I have created by extending the TextField class.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package 
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #0066CC;">Stage</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>. <span style="color: #66cc66;">*</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #0066CC;">text</span>.<span style="color: #0066CC;">TextField</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #0066CC;">text</span>.<span style="color: #006600;">TextFieldAutoSize</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">utils</span>.<span style="color: #0066CC;">getTimer</span>;
	<span style="color: #808080; font-style: italic;">//</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> FPSCounter <span style="color: #0066CC;">extends</span> <span style="color: #0066CC;">TextField</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> fontSize : <span style="color: #0066CC;">Number</span>; <span style="color: #808080; font-style: italic;">//the font size for the field</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> lastUpdate : <span style="color: #0066CC;">Number</span>; <span style="color: #808080; font-style: italic;">// the results of getTimer() from the last update</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> frameCount : <span style="color: #0066CC;">Number</span>; <span style="color: #808080; font-style: italic;">//stores the count of frames passed this second</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #0066CC;">static</span> const UPDATE_INTERVAL : <span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">1000</span>; <span style="color: #808080; font-style: italic;">//the interval at which the frame count will be be posted</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> FPSCounter <span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">textColor</span> : <span style="color: #0066CC;">Number</span> = 0xFF0000, fontSize : <span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">textColor</span> = <span style="color: #0066CC;">textColor</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">fontSize</span> = fontSize;
&nbsp;
			<span style="color: #808080; font-style: italic;">//set the field to autosize from the left</span>
			<span style="color: #0066CC;">autoSize</span> = TextFieldAutoSize.<span style="color: #0066CC;">LEFT</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//make the text unselecteable and disable mouse events</span>
			<span style="color: #0066CC;">selectable</span> = <span style="color: #000000; font-weight: bold;">false</span>;
			mouseEnabled = <span style="color: #000000; font-weight: bold;">false</span>;
&nbsp;
			addEventListener <span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ADDED_TO_STAGE</span>, setFPSUpdate<span style="color: #66cc66;">&#41;</span>;
			addEventListener <span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">REMOVED_FROM_STAGE</span>, clearFPSUpdate<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">//called when the instance is added to a Display Object</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> setFPSUpdate <span style="color: #66cc66;">&#40;</span>event : Event<span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			addEventListener <span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, updateFPS<span style="color: #66cc66;">&#41;</span>;
			frameCount = <span style="color: #cc66cc;">0</span>;
			updateText <span style="color: #66cc66;">&#40;</span>frameCount<span style="color: #66cc66;">&#41;</span>;
			lastUpdate = <span style="color: #0066CC;">getTimer</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">//called when the instance is removed from a Display Object</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> clearFPSUpdate <span style="color: #66cc66;">&#40;</span>event : Event<span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			removeEventListener <span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, updateFPS<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">//update the frame counter</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> updateFPS <span style="color: #66cc66;">&#40;</span>event : Event<span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">//get the current time and increment the frame counter</span>
			<span style="color: #000000; font-weight: bold;">var</span> currentTime : <span style="color: #0066CC;">Number</span> = <span style="color: #0066CC;">getTimer</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			frameCount ++;
&nbsp;
			<span style="color: #808080; font-style: italic;">//post the frame count if more then a second has passed</span>
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>currentTime <span style="color: #66cc66;">&amp;</span>gt;= lastUpdate + UPDATE_INTERVAL<span style="color: #66cc66;">&#41;</span>
			<span style="color: #66cc66;">&#123;</span>
				lastUpdate = currentTime;
				updateText <span style="color: #66cc66;">&#40;</span>frameCount<span style="color: #66cc66;">&#41;</span>;
				frameCount = <span style="color: #cc66cc;">0</span>;
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">//update the display text</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> updateText <span style="color: #66cc66;">&#40;</span>frameNum : <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: #0066CC;">htmlText</span> = <span style="color: #ff0000;">&quot;&lt;b&gt;&lt;/b&gt;&lt;font size='&quot;</span> + fontSize + <span style="color: #ff0000;">&quot;'&gt;&quot;</span> + frameNum + <span style="color: #ff0000;">&quot; fps&lt;/font&gt;&lt;/b&gt;&quot;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p><b>note:</b> The Actionscript code plugin we&#8217;re using above has a bug where greater than/less than (pointy bracket) symbols are not rendered properly.  Watch for & gt; and & lt; in the code above and replace them with the proper symbols.</p>
<p>To use the class simply create a instance of it and add it to the stage.</p>
<p>var fpsCounter : FPSCounter = new FPSCounter();<br />
addChild( fpsCounter );</p>
<p>optionally you can set the font color and size as well<br />
var fpsCounter : FPSCounter = new FPSCounter( 0x00FF00 , 50 );</p>
<p>You can download the source code here:</p>
<p><a href="http://www.untoldentertainment.com/blog/tutorials/gameLoop/gameLoop.zip">http://www.untoldentertainment.com/blog/tutorials/FPS/fps_tutorial.zip</a></p>
<p>For more Flash AS3 Tutorials and a pile of other useful stuff, check out our <a href="http://www.untoldentertainment.com/blog/flash-and-actionscript-911/">Flash and Actionscript 911</a> feature.</p>
<div class="tweetmeme_button" style="margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2009%2F04%2F09%2Ftutorial-building-a-fps-frames-per-second-counter%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2009%2F04%2F09%2Ftutorial-building-a-fps-frames-per-second-counter%2F&amp;source=untoldent&amp;style=normal&amp;service_api=R_44463fc40e5eda8ec585b4088e695066&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p class="fbconnect_share"><fb:share-button class="url" href="http://www.untoldentertainment.com/blog/2009/04/09/tutorial-building-a-fps-frames-per-second-counter/" /></p><img src="http://www.untoldentertainment.com/blog/?ak_action=api_record_view&id=1073&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.untoldentertainment.com/blog/2009/04/09/tutorial-building-a-fps-frames-per-second-counter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

