<?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>*drawlogic &#187; FLEX</title>
	<atom:link href="http://drawlogic.com/category/flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://drawlogic.com</link>
	<description>interactive and game development technologies for the web - flash, flex, unity3d, silverlight, javascript</description>
	<lastBuildDate>Tue, 09 Mar 2010 18:39:24 +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>AS3 Library for OAuth with Twitter for AIR Apps</title>
		<link>http://drawlogic.com/2009/07/08/as3-library-for-oauth-with-twitter-for-air-apps/</link>
		<comments>http://drawlogic.com/2009/07/08/as3-library-for-oauth-with-twitter-for-air-apps/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 12:01:49 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[DEVELOPMENT]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[STANDARDS]]></category>
		<category><![CDATA[SYNDICATION]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[CODE]]></category>
		<category><![CDATA[core]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=592</guid>
		<description><![CDATA[AIR is very popular for creating twitter clients, Sönke Rohde just made it much easier to make AIR apps for twitter with an AS3 library for Twitter. This library is built on top of core oauth as3 library by iotashin.  Core OAuth as3 library is a standard OAuth library this can be used for your [...]]]></description>
			<content:encoded><![CDATA[<p>AIR is very popular for creating twitter clients, <a href="http://soenkerohde.com/2009/07/high-level-as3flex-library-for-oauth-with-twitter-from-air/" target="_blank">Sönke Rohde just made it much easier to make AIR apps for twitter</a> with an <a href="http://github.com/srohde/OAuth/tree/master" target="_blank">AS3 library for Twitter</a>. This library is built on top of <a href="http://www.iotashan.com/index.php/2008/04/28/oauth-actionscript-library/" target="_blank">core oauth as3 library</a> <a href="http://www.iotashan.com/index.php/2008/04/28/oauth-actionscript-library/" target="_blank">by iotashin</a>.  Core <a href="http://oauth.net/" target="_blank">OAuth</a> as3 library is a standard OAuth library this can be used for your own OAuth backends or connecting to other OAuth services as well.</p>
<p>A very nice feature of this library, in addition to being coded cleanly and as3 style, is the ability to have the Twitter OAuth page render inside of Flash.</p>
<p style="padding-left: 30px;">Instead of opening the Twitter authorization page in the browser the library also contains OAuthLoader which is a wrapper around HTMLLoader which enables to directly show the authorization page within an AIR window:</p>
<pre lang="actionscript">// use this in the requestTokenHandler instead of navigateToURL
var loader:OAuthLoader = new OAuthLoader();
loader.load(request);
loader.percentWidth = 100;
loader.percentHeight = 100;
var w:Window = new Window();
w.width = 800;
w.height = 400;
w.title = req.url;
w.addChild(loader);
w.open();</pre>
<ul>
<li><a href="http://www.iotashan.com/">Shannon Hicks</a> <a href="http://www.iotashan.com/index.php/2008/04/28/oauth-actionscript-library/">core oauth as3 library</a></li>
<li><a href="http://github.com/srohde/OAuth/tree/master">High level AS3/Flex library for OAuth</a></li>
<li><a href="http://code.google.com/p/oauth-as3/" target="_blank">oauth-as3 Google Code page</a></li>
<li><a href="http://oauth.net/">OAuth</a></li>
<li><a href="http://apiwiki.twitter.com/OAuth-FAQ">Twitter OAuth FAQ</a></li>
<li><a href="http://apiwiki.twitter.com/Twitter-API-Documentation">Twitter API Documentation</a></li>
<li><a href="http://www.hueniverse.com/hueniverse/2007/10/beginners-gui-1.html">Getting Started with OAuth</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/07/08/as3-library-for-oauth-with-twitter-for-air-apps/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>AS3 Flash Efficient Code Techniques, Vectors in Flash 10, Faster JPEG Encoding, Other Optimization Notes</title>
		<link>http://drawlogic.com/2009/05/22/as3-flash-efficient-code-techniques-vectors-in-flash-10-faster-jpeg-encoding-other-optimization-notes/</link>
		<comments>http://drawlogic.com/2009/05/22/as3-flash-efficient-code-techniques-vectors-in-flash-10-faster-jpeg-encoding-other-optimization-notes/#comments</comments>
		<pubDate>Fri, 22 May 2009 09:21:42 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[CODE]]></category>
		<category><![CDATA[DEVELOPMENT]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[PERFORMANCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[VECTOR]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[efficient]]></category>
		<category><![CDATA[optmization]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=558</guid>
		<description><![CDATA[Flash 10 will be ready for mainstream hopefully by the end of this year, or early &#8216;10 when the penetration numbers will be up in or around the 90% range via zeh fernando based on previous trajectories.  
With that, Flash 10 has many great new things such as the Vector structure that allows a collection of a [...]]]></description>
			<content:encoded><![CDATA[<p>Flash 10 will be ready for mainstream hopefully by the end of this year, or early &#8216;10 when the <a href="http://spreadsheets.google.com/pub?key=pjaKnZUqwo-1XaUCJLlBQeA&amp;gid=1">penetration numbers will be up in or around the 90% range</a> via <a href="http://zehfernando.com/2009/flash-penetration-stats-for-march-2009-now-live-graphs-updated/">zeh fernando based on previous trajectories</a>.  </p>
<p>With that, <strong>Flash 10 has many great new things such as the </strong><a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/Vector.html" target="_blank"><strong>Vector</strong></a><strong> structure that allows a collection of a certain type, which results in a faster collection because of the known type.</strong>  So anywhere where Arrays are used, that is a possible candidate for a performance increase within some code because you are asking the virtual machine to do less work on each loop (not having to dynamically find out the type).</p>
<p><a href="http://www.bytearray.org/?p=775" target="_blank">ByteArray</a> (Thibault Imbert) has demonstrated that for the JPEG encoding in corelib it is <a href="http://www.bytearray.org/?p=775" target="_blank">up to 2.5 times faster using Vectors than Arrays</a>.  Your mileage may vary heavily but it is almost a guaranteed speed boost due to less work.  This obviously has great possibilities for speeding up code that uses lots of arrays.  </p>
<p>Due to the performance boost the Vector does have some constraints in the typical give and take of coder flexibility with compiler and virtual machine overhead.  Vectors are more explicit and strongly typed which is why they are fast, but this is also limiting.</p>
<blockquote><p><strong>In addition to the data type restriction, the Vector class has other restrictions that distinguish it from the Array class:</strong></p>
<ul>
<li>A Vector is a dense array. Unlike an Array, which may have values in indices 0 and 7 even if there are no values in positions 1 through 6,<strong> a Vector must have a value (or </strong><code><strong>null</strong></code><strong>) in each index.</strong></li>
<li><strong>A Vector can optionally be fixed-length, </strong><strong>meaning the number of elements it contains can&#8217;t change</strong>.</li>
<li>Access to a Vector&#8217;s elements is bounds-checked. You can never read a value from an index greater than the final element (<code>length - 1</code>). You can never set a value with an index more than one beyond the current final index (in other words, you can only set a value at an existing index or at index <code>[length]</code>).</li>
</ul>
</blockquote>
<p> [ <a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/Vector.html" target="_blank">Vector docs</a>  ]</p>
<p><a href="http://www.bytearray.org/?p=775" target="_blank">ByteArray not only used Vectors heavily but did other optimizations</a> that are always good to do, even though optimization is evil when you are working with precious client side resources ensuring an optimized base starting point can be a good thing.</p>
<blockquote><p>So what did I do ?</p>
<ul>
<li>I used bitwise operators as much as possible.</li>
<li><strong>I replaced all Arrays with fixed length Vectors.</strong></li>
<li>I used pre-incrementation rather than post-incrementation (thanks <a title="Joa's wiki" href="http://wiki.joa-ebert.com/" target="_blank">Joa</a> for this one <img src='http://drawlogic.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ).</li>
<li>I casted to int all my Vector indices access.</li>
<li>Other minor stuff you always do to optimize your code </li>
</ul>
</blockquote>
<p><strong>Other sources as well for even more optimization or shall I say efficient AS3:</strong></p>
<ul>
<li><a href="http://lab.polygonal.de/2008/06/18/using-object-pools/" target="_blank">Polygonal Labs Using Object Pools</a></li>
<li><a href="http://blog.joa-ebert.com/2008/05/07/tweening-and-object-pools/" target="_blank">Joa Ebert Tweening and Object Pools</a></li>
<li><a href="http://wiki.joa-ebert.com/index.php/Category:Code_Optimization" target="_blank">Joa Ebert Optmization Wiki</a></li>
<li><a href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html" target="_blank">Sean Moore Efficient AS3 roundup (great list of resources for more at the bottom)</a></li>
<li><a href="http://www.lostinactionscript.com/blog/index.php/2008/09/28/tips-on-how-to-write-efficient-as3/" target="_blank">Lost in Actionscript Efficient AS3 Tips</a></li>
<li><a href="http://www.bigspaceship.com/blog/labs/as3-optimization-tip" target="_blank">Big SpaceShip Mouse Leave Tip</a> (flash can hog resources so when it isn&#8217;t in focus then let is stop tasking the processor)</li>
<li><a href="http://www.gskinner.com/blog/archives/2009/05/idle_cpu_usage.html" target="_blank">Grant Skinner Idle CPU in AIR FPS Tip</a> (set fps to a lower amount when it is out of focus)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/05/22/as3-flash-efficient-code-techniques-vectors-in-flash-10-faster-jpeg-encoding-other-optimization-notes/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>amfast Python Remoting and Services Library for Flash, Flex and other AMF</title>
		<link>http://drawlogic.com/2009/05/18/amfast-python-remoting-and-services-library-for-flash-flex-and-other-amf/</link>
		<comments>http://drawlogic.com/2009/05/18/amfast-python-remoting-and-services-library-for-flash-flex-and-other-amf/#comments</comments>
		<pubDate>Mon, 18 May 2009 07:18:12 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[AMF]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[DEVELOPMENT]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[LIBRARIES]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PYTHON]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[tracking]]></category>
		<category><![CDATA[AMF0]]></category>
		<category><![CDATA[AMF3]]></category>
		<category><![CDATA[messaging]]></category>
		<category><![CDATA[remoting]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=548</guid>
		<description><![CDATA[pyamf is pretty sweet for Flash remoting with Pythonic server side, but now we have two nicely done and integrated remoting kits for python on the server side.
amfast is a new remoting library  that looks to be as sweet as pyamf (where sweet == fast and useful).  I am checking out amfast now but the [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://pyamf.org/" target="_blank">pyamf </a></strong>is pretty sweet for Flash remoting with Pythonic server side, but now we have two nicely done and integrated remoting kits for python on the server side.</p>
<p><strong><a href="http://code.google.com/p/amfast/" target="_blank">amfast </a></strong>is a new remoting library  that looks to be as sweet as pyamf (where sweet == fast and useful).  I am checking out <a href="http://code.google.com/p/amfast/" target="_blank">amfast </a>now but the speed boost alone might be worth it.  For instance, working with real-time games, when you need static content you need to grab that quickly sometimes via a content service.  The faster that link the better. It also has <a href="http://twistedmatrix.com/trac/" target="_blank">Twisted</a> integration which is great for networking and <a href="http://www.sqlalchemy.org/" target="_blank">SQLAlchemy </a>integration which is in my opinion the best ORM for python (pyamf has twisted, django, pylons, sqlalchemy as well)</p>
<p><a href="http://code.google.com/p/amfast/" target="_blank">amfast </a>is well documented and has some great examples.  If you have the Python addiction, check it.</p>
<blockquote>
<h3>Description</h3>
<ul>
<li>AmFast is a Flash remoting framework for Python.</li>
<li>AmFast can use AMF to communicate between Python and Flash, Flex, and any other system that supports AMF.</li>
<li>AMF is a binary object serialization protocol used by Actionscript based applications.</li>
</ul>
<h3>Server Features</h3>
<ul>
<li>Support for NetConnection and RemoteObject RPC.</li>
<li><strong>Support for Producer/Consumer &#8216;push&#8217; messaging with HTTP polling, HTTP long-polling, and real-time HTTP streaming channels.</strong></li>
<li>Support for authentication with NetConnection and RemoteObject.</li>
<li>Flexible Target mapping system to map message destinations to invokable Target objects.</li>
<li>Support for ChannelSets with multiple Channels to expose resources in different ways.</li>
<li>Built in Channels for <a rel="nofollow" href="http://cherrypy.org/">CherryPy</a>, <a rel="nofollow" href="http://twistedmatrix.com/trac/">Twisted Web</a>, and plain WSGI.</li>
<li>Support for configurable Endpoints. Use AmFast&#8217;s built-in AMF encoder/decoder C-extension, or use an external AMF encoder/decoder, such as <a rel="nofollow" href="http://pyamf.org/">PyAmf</a> for a pure-Python implementation.</li>
</ul>
<h3>AMF Encoder/Decoder Features</h3>
<ul>
<li>AMF0/AMF3 encoder/decoder written in C as a Python extension for speed.</li>
<li><strong>More than 10x faster than the <a rel="nofollow" href="http://pyamf.org/">PyAmf</a> encoder/decoder (even when using <a rel="nofollow" href="http://pyamf.org/">PyAmf&#8217;s</a> optional C-extension).</strong></li>
<li>Map custom classes with ClassDef objects for <strong>complete control over serialization/de-serialization</strong>.</li>
<li>Full support for IExternalizable objects.</li>
<li>Data persistence with <a rel="nofollow" href="http://www.sqlalchemy.org/">SqlAlchemy</a> including remotely-loadable lazy-loaded attributes.</li>
<li><strong>Actionscript code generation from ClassDef objects.</strong></li>
</ul>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/05/18/amfast-python-remoting-and-services-library-for-flash-flex-and-other-amf/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>AS3 JiglibFlash Example with MouseConstraint in Papervision 3D</title>
		<link>http://drawlogic.com/2009/04/23/as3-jiglibflash-example-with-mouseconstraint-in-papervision-3d/</link>
		<comments>http://drawlogic.com/2009/04/23/as3-jiglibflash-example-with-mouseconstraint-in-papervision-3d/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 22:10:59 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[3D ENGINES]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[AWAY3D]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PAPERVISION]]></category>
		<category><![CDATA[PERFORMANCE]]></category>
		<category><![CDATA[PHYSICS]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[RENDERING]]></category>
		<category><![CDATA[SANDY]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[ENGINE]]></category>
		<category><![CDATA[jiglibflash]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=531</guid>
		<description><![CDATA[@bartek from everydayflash.com is an amazing 3d flash designer and developer.  The latest from everydayflash is a sample using MouseConstraint in JiglibFlash the 3d physics engine for all major flash 3d engines.

It is easy to see how the latest version of JiglibFlash with MouseConstraint will be heavily influencing flash games and applications very soon. This [...]]]></description>
			<content:encoded><![CDATA[<p>@bartek from <a href="http://www.everydayflash.com/blog/index.php/2009/04/23/jiglibflash-3d-physics/" target="_blank">everydayflash.com</a> is an amazing 3d flash designer and developer.  The latest from everydayflash is a <a href="http://www.everydayflash.com/blog/index.php/2009/04/23/jiglibflash-3d-physics/" target="_blank">sample using MouseConstraint in JiglibFlash the 3d physics engine for all major flash 3d engines</a>.</p>
<p><a href="http://www.everydayflash.com/flash/jiglib/pingpong.html" target="_blank"><img class="alignnone" title="jiglibflash 3d physics engine" src="http://i81.photobucket.com/albums/j223/drawkbox/paddle.png" alt="" width="569" height="307" /></a></p>
<p>It is easy to see how the latest version of <a href="http://www.jiglibflash.com/blog/" target="_blank">JiglibFlash</a> with <a href="http://www.jiglibflash.com/blog/2009/04/14/radians-vs-degress-new-class-and-other-news/" target="_blank">MouseConstraint</a> will be heavily influencing flash games and applications very soon. This is a very smooth and quick demo that feels very responsive on the controls.  There are so many possible uses for JiglibFlash now that the MouseConstraint is available.  It will evolve further but this version seems ready to start integrating into many flash game and interactive ideas and projects. Even though it is still alpha it has been heavily cleaned up and a plugin system added by bartek for pluggable 3d render engines.  That is a huge step for 3d pipelines in flash.</p>
<p>Great work JiglibFlash team!</p>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/04/23/as3-jiglibflash-example-with-mouseconstraint-in-papervision-3d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Torque 3D Extremely Cool Feature &#8211; In Game Browser Web Surface/Canvas Capable of Web Render w/ HTML, Flash, Video etc.</title>
		<link>http://drawlogic.com/2009/04/05/torque3d-extremely-cool-feature-in-game-browser-web-surfacecanvas-capable-of-web-render-w-html-flash-video-etc/</link>
		<comments>http://drawlogic.com/2009/04/05/torque3d-extremely-cool-feature-in-game-browser-web-surfacecanvas-capable-of-web-render-w-html-flash-video-etc/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 05:03:43 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[3D ENGINES]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[ENGINE]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[INTERACTIVE]]></category>
		<category><![CDATA[MARKET]]></category>
		<category><![CDATA[OPENGL]]></category>
		<category><![CDATA[PERFORMANCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[RENDERING]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[TORQUE 3D]]></category>
		<category><![CDATA[USER EXPERIENCE]]></category>
		<category><![CDATA[VIDEO]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[torque]]></category>
		<category><![CDATA[torque3d]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=510</guid>
		<description><![CDATA[Torque3D seems to have full featured browser surfaces that you can use in the 3d engine seamlessly, see the video below (at :38). This is amazing stuff.
Making games that integrate content from the web is especially required these days.  It is a difficult thing to do within the 3d render because of all the plugins, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.garagegames.com/community/blogs/view/16853" target="_blank">Torque3D seems to have full featured browser surfaces</a> that you can use in the 3d engine seamlessly, see the <a href="http://vimeo.com/3969658?pg=embed&amp;sec=" target="_blank">video below (at :38)</a>. This is amazing stuff.</p>
<p>Making games that integrate content from the web is especially required these days.  It is a difficult thing to do within the 3d render because of all the plugins, styling etc that needs to be rendered on a 3d surface.  <strong>Well Torque3D has a killer feature in that it supports <a href="http://www.garagegames.com/community/blogs/view/16853" target="_blank">entirely full features browser render on a 3d surface</a></strong>.  So now you can integrate html content, flash video etc in your game easily.</p>
<p>You can play content in flash player content easily and have stripped down html but it is limited, you can play videos and have content in Unity3d but it is limited, even larger engines like Unreal 3 have difficulty handling flash and html content.  If this is a good implementation Torque3D has a killer feature on their hands! Flash is commonly used as user interface elements and content within games but it can be challenging.  This is pretty exciting if it works as advertised. Think of how cool all the little consoles, mini-games and controls in 3d games could be in flash easily.</p>
<p><strong>See at :38 in the video&#8230;</strong></p>
<p><object width="660" height="420" data="http://vimeo.com/moogaloop.swf?clip_id=3969658&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=3969658&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /></object><br />
<a href="http://vimeo.com/3969658">GDC 2009 &#8211; Torque 3D Web Demo</a> from <a href="http://vimeo.com/garagegames">GarageGames</a> on <a href="http://vimeo.com">Vimeo</a>.<br />
<!--end_raw--></p>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/04/05/torque3d-extremely-cool-feature-in-game-browser-web-surfacecanvas-capable-of-web-render-w-html-flash-video-etc/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Away3D Updated for Flash 10, Looking Good</title>
		<link>http://drawlogic.com/2009/03/28/away3d-updated-for-flash-10-looking-good/</link>
		<comments>http://drawlogic.com/2009/03/28/away3d-updated-for-flash-10-looking-good/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 03:17:48 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[3D ENGINES]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[AWAY3D]]></category>
		<category><![CDATA[ENGINE]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PERFORMANCE]]></category>
		<category><![CDATA[PIXEL BENDER]]></category>
		<category><![CDATA[RENDERING]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[bender]]></category>
		<category><![CDATA[flash10]]></category>
		<category><![CDATA[PIXEL]]></category>
		<category><![CDATA[shaders]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=504</guid>
		<description><![CDATA[Away3D was updated to Flash 10 earlier this month.  Flooded with final semester, massive workload and all the conferences #swsx, #gdc, #mix09 etc I missed the announcement.  
It is looking pretty sweet with this mustang demo showing off the update.  Pixel bender has provided a performance update for effects that shows nicely here.

The above demo shows some [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://away3d.com/away3d-33-flash-10-version-update" target="_blank"><strong>Away3D was updated to Flash 10</strong></a><strong> earlier this month</strong>.  Flooded with final semester, massive workload and all the conferences #swsx, #gdc, #mix09 etc I missed the announcement.  </p>
<p>It is looking pretty sweet with this<strong> </strong><a href="http://www.infiniteturtles.co.uk/projects/away3d/demos/NormalmappedMustang/Advanced_NormalmappedMustang.html" target="_blank"><strong>mustang demo showing off the update</strong></a>.  Pixel bender has provided a performance update for effects that shows nicely here.</p>
<p><a href="http://www.infiniteturtles.co.uk/projects/away3d/demos/NormalmappedMustang/Advanced_NormalmappedMustang.html" target="_blank"><img class="alignnone" title="Away3D" src="http://i81.photobucket.com/albums/j223/drawkbox/away3d-f10.png" alt="" width="550" height="454" /></a></p>
<blockquote><p>The above <a href="http://www.infiniteturtles.co.uk/projects/away3d/demos/NormalmappedMustang/Advanced_NormalmappedMustang.html">demo</a> shows some of what is possible with the update: <strong>normalmapping with ambient, diffuse and correctly normalised specular shading</strong>, without the need for layers. As if that’s not enough, a further <strong>Pixel Bender shader is applied to the view to create a HDR (High Dynamic Range) effect on the highlights</strong>, something usually seen in much more 3d-rich console games. Special thanx go to <a href="http://www.carbin.com/">Eddie Carbin</a>for donating an excellent normalmapped mustang model, and <a href="http://www.derschmale.com/">David Lenaerts</a> for writing the HDR filter.</p></blockquote>
<p><a href="http://www.airtightinteractive.com/news/?p=114" target="_blank">Airtight Interactive did a comparison a while back where FP10 rendering was faster against the olde version of Away3D</a>, this update may change that will have to take a look.  All away3d needs is a designer <img src='http://drawlogic.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/03/28/away3d-updated-for-flash-10-looking-good/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>AS3 Version of OpenCV for Facial Detection, Web Cam Object Detection, Head Tracking, 3D Library Integration and more with Open Computer Vision Library for Flash</title>
		<link>http://drawlogic.com/2009/03/16/as3-version-of-opencv-for-facial-detection-web-cam-object-detection-head-tracking-3d-library-integration-and-more-with-open-computer-vision-library/</link>
		<comments>http://drawlogic.com/2009/03/16/as3-version-of-opencv-for-facial-detection-web-cam-object-detection-head-tracking-3d-library-integration-and-more-with-open-computer-vision-library/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 21:47:32 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[3D ENGINES]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[ADOBE]]></category>
		<category><![CDATA[ALCHEMY]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[BEST OF]]></category>
		<category><![CDATA[CODE]]></category>
		<category><![CDATA[ENGINE]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[LIBRARIES]]></category>
		<category><![CDATA[MOTION]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PAPERVISION]]></category>
		<category><![CDATA[PERFORMANCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[RENDERING]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[TOOLS]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[detection]]></category>
		<category><![CDATA[face]]></category>
		<category><![CDATA[flash 10]]></category>
		<category><![CDATA[head]]></category>
		<category><![CDATA[libspark]]></category>
		<category><![CDATA[marilena]]></category>
		<category><![CDATA[opencv]]></category>
		<category><![CDATA[recognition]]></category>
		<category><![CDATA[tracking]]></category>
		<category><![CDATA[visual]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=425</guid>
		<description><![CDATA[Libspark from Japan is a treasure trove of great flash advancements, they seem to realize the great things that can come from porting in existing solid libraries from C/C++ etc into flash and have been scoring lately including augmented reality in flash porting the ARToolkit to FLARToolkit.  Recently a port of openCV for as3 called [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.libspark.org/" target="_blank">Libspark</a> from Japan is a treasure trove of great flash advancements, they seem to realize the great things that can come from porting in existing solid libraries from C/C++ etc into flash and have been scoring lately including augmented reality in flash porting the <a href="http://www.hitl.washington.edu/artoolkit/" target="_blank">ARToolkit</a> to FLARToolkit.  Recently a port of <a href="http://www.libspark.org/wiki/mash/Marilena" target="_blank">openCV for as3 called Marilena</a> was found and it is for object detection and decent facial recognition (it is a computer vision library from intel) considering the processing power needed to do this.</p>
<p><strong>Face Detection:</strong> Here is the <a href="http://maaash.jp/lab/Marilena_sample/" target="_blank">sample included with Marilena</a> showing facial detection on an image.</p>
<p><a href="http://maaash.jp/lab/Marilena_sample/" target="_blank"><img class="alignnone size-full wp-image-436" title="marilena1" src="http://drawlogic.com/wp-content/uploads/2009/03/marilena1.jpg" alt="marilena1" width="520" height="163" /></a></p>
<p>Lots of recent action has blown up on this front from <a href="http://mrdoob.com/blog/post/643" target="_blank">Mr doob</a>, <a href="http://www.quasimondo.com/" target="_blank">quasimondo </a>(optimizing the <a href="http://www.libspark.org/wiki/mash/Marilena" target="_blank">Marilena</a> classes for better performance) and <a href="http://www.boffswana.com/news/?p=498" target="_blank">Boffwswana</a>. Also there is a kit called <a href="http://code.google.com/p/deface/" target="_blank">deface</a> by sshipman that is the first foray into this a year ago doing similar things but it was just a bit before it&#8217;s time and a bit slow in previous versions of flash,<a href="http://suckatmath.com/personal/facedetect/facedetect.html" target="_blank"> it performs decent now in this sample</a>. Flash 10 performance of the AVM2 and future directions with Alchemy will lead to more interesting stuff just like this.</p>
<p><strong><a href="http://mrdoob.com/blog/post/643" target="_blank">Mr. doob</a> head tracking sample, be sure to check <a href="http://mrdoob.com/blog/post/643" target="_blank">lots of other examples there</a><br />
</strong></p>
<p><strong><a href="http://mrdoob.com/blog/post/643" target="_blank"><img class="alignnone size-full wp-image-428" title="mrdoob_facedriven3d" src="http://drawlogic.com/wp-content/uploads/2009/03/mrdoob_facedriven3d.png" alt="mrdoob_facedriven3d" width="350" height="222" /></a><br />
</strong></p>
<p><strong><a href="http://www.boffswana.com/news/?p=498" target="_blank">Boffswana </a>example of head tracking <a href="http://www.youtube.com/watch?v=Jd3-eiid-Uw" target="_blank">Johnny Lee Wii style</a> </strong>with only a webcam and flash, no wiimote needed since it uses facial detection to check where you are and how close you are in the screen and then moves accordingly.</p>
<p><a href="http://www.boffswana.com/news/?p=498" target="_blank"><img class="alignnone size-full wp-image-427" title="bofswana" src="http://drawlogic.com/wp-content/uploads/2009/03/bofswana.jpg" alt="bofswana" width="505" height="379" /></a></p>
<p><a href="http://mrdoob.com/blog/post/643" target="_blank"></a></p>
<p>This is stemming from the recent explosion of the <a href="http://www.libspark.org/wiki/saqoosha/FLARToolKit/en" target="_blank">FLARToolkit </a>and <a href="http://drawlogic.com/2008/11/17/as3-augmented-reality-in-flash-and-papervision-3d-flartoolkit/" target="_blank">augmented reality in flash</a> as well as the gimmicks used by Nintendo with the <a href="http://www.youtube.com/watch?v=Jd3-eiid-Uw" target="_blank">wii and Johnny Lee&#8217;s great head tracking advancements</a>. Porting great libraries to flash seems to be the phase we are entering now judging by the recent excitement around Adobe Alchemy and the LLVM along with the lead from the libspark.org contributors. We have also seen this heavily last year in ports of Box2D for 2d physics and other toolkits using established working code and porting that to flash now that is is mostly capable of handling the performance.</p>
<p><a href="http://sourceforge.net/projects/opencv/" target="_blank">OpenCV</a> (Open Computer Vision Library by Intel) is quite a powerful platform that allows you to do all this and now it is available in flash. There are other great libraries for nearly all platforms now. I have done some previous work with <a href="http://code.google.com/p/aforge/" target="_blank">Aforge which is also a port of OpenCV</a> mainly for<a href="http://drawlogic.com/2007/10/17/motion-detection-in-flash-as2-and-as3-and-c/" target="_blank"> motion detection</a>. This was always around but not until the recent performance updates and the innovation that has come with Alchemy and the thinking that goes along with that (porting in libraries to flash from C/C++ etc), has allowed this to flourish in flash and thus the web.</p>
<p>The amazing new things we can do with flash by porting in existing libraries is only going to get more intense as alchemy and flash 10 are even more mainstream.  It is almost as if Flash will eventually just become a web renderer and simplified front end to many great toolkits that exist in more native environments like C/C++ but with the speed and distribution access of the web with Flash.  Exciting times ahead.</p>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/03/16/as3-version-of-opencv-for-facial-detection-web-cam-object-detection-head-tracking-3d-library-integration-and-more-with-open-computer-vision-library/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>AS3 Data Structures for Game Developers Ported to haXe as hx3ds Which Performs Faster</title>
		<link>http://drawlogic.com/2009/03/13/as3-data-structures-for-game-developers-ported-to-haxe-as-hx3ds-which-performs-faster/</link>
		<comments>http://drawlogic.com/2009/03/13/as3-data-structures-for-game-developers-ported-to-haxe-as-hx3ds-which-performs-faster/#comments</comments>
		<pubDate>Sat, 14 Mar 2009 04:27:56 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[HAXE]]></category>
		<category><![CDATA[LIBRARIES]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PERFORMANCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[STANDARDS]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[array2]]></category>
		<category><![CDATA[array3]]></category>
		<category><![CDATA[bitvector]]></category>
		<category><![CDATA[DATA]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[queue]]></category>
		<category><![CDATA[structures]]></category>
		<category><![CDATA[VECTOR]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=419</guid>
		<description><![CDATA[Polygonal labs, maker of some of the best demos, information and tools for AS3 since inception updated the killer AS3 Data Structures for Game Developers and ported it to haXe.
Of course along the way making many improvements and showing great information on how and why the haXe version is faster which mainly boils down to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://lab.polygonal.de/ds/" target="_blank"><img class="alignright" title="Data Structures for Game Developers" src="http://i81.photobucket.com/albums/j223/drawkbox/ds_logo-1.gif" alt="" width="140" height="100" /></a>Polygonal labs, maker of some of the best demos, information and tools for AS3 since inception <a href="http://lab.polygonal.de/2009/03/12/hx3ds/" target="_blank">updated the killer AS3 Data Structures for Game Developers and ported it to haXe</a>.</p>
<p>Of course along the way making many improvements and showing great information on how and why the haXe version is faster which mainly boils down to a more strict virtual machine but flexible still with generics.</p>
<p><a href="http://haxe.org/" target="_blank">haXe </a>is fast because it is a very highly optimized <span style="text-decoration: line-through;">virtual machine</span> language with compiler (and could be called a virtual machine to target other VMs similar to LLVM with the ability to target the Neko VM, AVM2 or Javascript, it is more than just a language) by <a href="http://ncannasse.fr/" target="_blank">Nicolas Cannasse</a> that may one day overtake directly coding for the AVM2 or maybe we will even see haXe have more influence on flash soon for performance gains.  Some of the Alchemy LLVM virtual machine work is similar in nature to what haXe does and helps the language become an abstraction and translates into highly optimized code from very powerful and productive language syntax.</p>
<p>Anyways, I ramble, be sure to check out <a href="http://lab.polygonal.de/ds/" target="_blank">Data Structures for Game Developers by Polygonal Labs </a>now ported for<a href="http://lib.haxe.org/p/hx3ds" target="_blank"> haXe as hx3ds</a> if you are doing any sort of work in AS3 or haXe for AS3 it will be worth your while and provide a very common and useful data structures capabilities into your production that is highly optimized from one of the best AS3 developers.</p>
<blockquote><p>As the name suggests, <strong>hx3ds</strong> is a port of <strong>as3ds</strong> for haXe and is now available at <a href="http://lib.haxe.org/p/hx3ds">lib.haxe.org</a>. hx3ds only supports the flash player 10 target, as it makes extensive use of the Vector class. If you need data structures that compile across all platforms, take a look at <a href="http://lib.haxe.org/p/colhx">colhx</a> instead.</p>
<p><strong>Here’s a list of new features:</strong></p>
<ul>
<li>orders of magnitude faster</li>
<li>collections now support clone() and shuffle() operations</li>
<li>object pooling framework</li>
<li>revised graph, tree and linked list classes</li>
<li>memory manager for the virtual memory API (more on this soon)</li>
</ul>
</blockquote>
<blockquote>
<h3>The Structures Included</h3>
<h4>Multi-Dimensional Arrays</h4>
<p>The library contains a two-dimensional and three-dimensional array. They are both implemented by a single linear array rather than nested arrays. This is the fastest method in flash to simulate multi-dimensional arrays and outperforms the nested array method because multiple array lookups are slower compared to one lookup combined with a simple arithmetic expression (which you can also often precompute in the outer loop). The most obvious application would be a tilemap in 2d or a layered tilemap in 3d.</p>
<h4>Queue</h4>
<p>This is also called a FIFO structure (First In &#8211; First Out). The queue comes in two variations, which have the same methods, but differ in their implementations: There is the arrayed queue, which obviously uses an array internally, and the linked queue, which is build upon a linked list. They are both very similar, except that the arrayed version has a fixed size and is faster.<br />
A common application would be a command queue &#8211; imagine you have a unit in a strategy game and apply many commands which the unit should follow. All commands are enqueued and afterwards dequeued and processed in order.</p>
<h4>Stack</h4>
<p>Also commonly know as a FILO structure (First In &#8211; Last Out). Like the queue, this comes in two flavors: arrayed and linked. A stack is often not used directly, but a very important concept in programming. Please note, that a queue and a stack are not real structures, because they just define how data is accessed rather then stored.</p>
<h4>Tree</h4>
<p>A node-based structure. Every tree starts from a single node, called the root node. The root node can contain any number of child nodes, and every child node can again contain children. A tree node with no children is called a leaf node. In fact if you draw the nodes of a tree it looking like a real tree with branches. The AS3 display architecture is also a tree structure, so you could use this to manage your display objects and update them by traversing through the tree. Also, this is useful for decision trees, BVHs, storing a plot line or storing data recursively by applying the composite pattern.</p>
<h4>Binary Tree</h4>
<p>This is just a specialized kind of tree where each node is only allowed to have up to two children, called the left and right node. Binary trees are very often used for parsing input data, for example arithmetic expressions or when building a scripting system.</p>
<h4>Binary Search Tree (BST) and Hash Table</h4>
<p>Both structures store data that can be retrieved quickly by using a key. The method however differers greatly: The BST uses a recursive approach to split up large amounts of data into smaller sets. A hash table stores sparse key-based data using a hash-key in a small amount of space.</p>
<h4>Linked Lists</h4>
<p>A linked list is similar to an array. The main difference is that in an array, each cell contains just the data and is accessed by an index. A linked list consists of several node objects, which in addition to storing the data, manage a reference to the next node (singly linked) or to the next and previous node (doubly linked) in the list. Think of it as a more natural approach to work with sequential data.<br />
Other benefits are that you can insert and remove data quickly by just calling the appropriate method on the node itself &#8211; you don’t have to manage array indexes. Also in AS3 object access is faster than array access, so it competes very well in terms of performance when iterating over the list.</p>
<h4>Heap and Priority Queue</h4>
<p>A Heap is a special kind of binary tree in which every node is bigger than its child nodes. Whatever you throw into a heap, it’s automatically sorted so the item with the ‘most significant’ value (depending on the comparison function) is always the front item. A priority queue is build upon the heap structure, and can manage prioritized data &#8211; which can be used in limitless ways.</p>
<h4>Graph</h4>
<p>A graph is a loose node-based structure. Nodes are connected with arcs, and every node can point to any other node. They can also point to each other creating a bi-directional connection. It is essential for path finding, AI, soft-body dynamics with mass-springs systems and a lot more.</p>
<h4>Bit Vector</h4>
<p>A bit vector is some kind of array in which you can store boolean values (true/false &#8211; 1/0) as close as possible without wasting memory. I currently can’t think of a reasonable application, because usually you should have enough memory &#8211; but it’s nice to have because it shows basic bit masking operations.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/03/13/as3-data-structures-for-game-developers-ported-to-haxe-as-hx3ds-which-performs-faster/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>AS3 Tween Engines Getting Lighter with GTweeny, ByteTween, TweenLite and TweensyZero</title>
		<link>http://drawlogic.com/2009/02/05/as3-tween-engines-getting-lighter-with-gtweeny-bytetween-tweenlite-and-tweensyzero/</link>
		<comments>http://drawlogic.com/2009/02/05/as3-tween-engines-getting-lighter-with-gtweeny-bytetween-tweenlite-and-tweensyzero/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 08:14:21 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[ANIMATION]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[DYNAMIC]]></category>
		<category><![CDATA[EFFECTS]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bytetween]]></category>
		<category><![CDATA[gtween]]></category>
		<category><![CDATA[gtweeny]]></category>
		<category><![CDATA[transition]]></category>
		<category><![CDATA[tween]]></category>
		<category><![CDATA[tweener]]></category>
		<category><![CDATA[tweenlite]]></category>
		<category><![CDATA[tweenmax]]></category>
		<category><![CDATA[tweensy]]></category>
		<category><![CDATA[tweensyzero]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=378</guid>
		<description><![CDATA[Recently two compact tweening engines have been released.  Grant Skinner&#8217;s GTweeny and laborat&#8217;s ByteTween. This adds to the two that focus on micro-tween kit sizes in TweenLite and TweensyZero
Basically these engines look to be micro and provide pretty nice features while being so small.  Micro tweening engines like GTweeny (3k), ByteTween (1.7k), TweenLite [...]]]></description>
			<content:encoded><![CDATA[<p>Recently two compact tweening engines have been released.  Grant Skinner&#8217;s <a href="http://www.gskinner.com/blog/archives/2009/02/gtweeny_lightwe.html" target="_blank">GTweeny</a> and laborat&#8217;s <a href="http://thelaborat.org/?p=118" target="_blank">ByteTween</a>. This adds to the two that focus on micro-tween kit sizes in <a href="http://blog.greensock.com/tweenliteas3/" target="_blank">TweenLite </a>and <a href="http://code.google.com/p/tweensy/wiki/TweensyZero" target="_blank">TweensyZero</a></p>
<p>Basically these engines look to be micro and provide pretty nice features while being so small.  Micro tweening engines like GTweeny (3k), ByteTween (1.7k), TweenLite (2.7k), TweensyZero (2.9k) and Tweener (9k) have varying levels of support of features (Tweener being the most loaded with color and filter support without other kits just init, also TweenLite with a nice configurator to include only what you need).  Micro kits have benefits when used for banners, animated assets (where you have many assets and the per asset savings is worthwhile) and other places you just want really small output.</p>
<h3><a href="http://thelaborat.org/?p=118" target="_blank">Light Transition ByteTween</a></h3>
<p>(1.7k)</p>
<p>This kit has a c# version as well as a small as3 bytetween version.</p>
<blockquote><p>The ByteTween static class eats only 1.7K of compiled clip! With this size it supports:</p>
<ul>
<li>Creation of tweens of any numeric property (not color/uint properties).</li>
<li>Pause,Unpause,Cancel operations based on the tween target and property.</li>
<li>Overlap system that cancel tweens of same property in order to avoid erroneous behavior</li>
<li>Alpha tween with negative alpha support (negative alpha sets the MovieClip visibility to false)</li>
<li>’scale’ tween of both ’scaleX’ and ’scaleY’ properties.</li>
<li>OnComplete callback with any number of parameters</li>
<li>Easy interface for creating new tweens!</li>
</ul>
</blockquote>
<blockquote><p><a href="http://thelab-lighter.googlecode.com/files/light_transition_CS_0.5a.zip.zip">Download light_transition_CS_0.5a.zip.zip (c# version)</a></p></blockquote>
<blockquote><p><a href="http://thelab-lighter.googlecode.com/files/thelab_ByteTween.zip">Download thelab_ByteTween.zip</a></p></blockquote>
<h3><a href="http://blog.greensock.com/tweenliteas3/" target="_blank">TweenLite</a></h3>
<p>(2.7k) base</p>
<ul>
<li><strong><a href="http://blog.greensock.com/tweening-speed-test/">SPEED</a></strong> &#8211; I&#8217;m not aware of any popular tweening engine with a similar feature set that&#8217;s as fast as TweenLite. See the <a href="http://blog.greensock.com/tweening-speed-test/">speed comparisons</a> yourself.</li>
<li><strong>Feature set</strong> &#8211; In addition to tweening ANY numeric property of ANY object, TweenLite can tween filters, hex colors, volume, tint, saturation, contrast, frames, and even do bezier tweening, plus LOTS more. <a onclick="javascript:urchinTracker ('/outbound/article/www.TweenMax.com');" href="http://www.tweenmax.com/">TweenMax</a> extends TweenLite and adds even more capabilities like pause/resume, rounding, event listeners, timeScale, and more. Overwrite management is an important consideration for a tweening engine as well which is another area where the GreenSock tweening platform shines. You have options for AUTO overwriting or you can manually define how each tween will handle overlapping tweens of the same object.</li>
<li><strong>Expandability</strong> &#8211; With its new plugin architecture, you can activate as many (or as few) features as your project requires. Or write your own plugin if you need a feature that&#8217;s unavailable. Minimize bloat, and maximize performance.</li>
<li><strong>Management features</strong> &#8211; <a onclick="javascript:urchinTracker ('/outbound/article/www.TweenGroup.com');" href="http://www.tweengroup.com/">TweenGroup</a> makes it surprisingly simple to create complex sequences and groups of TweenLite/Max tweens that you can pause(), resume(), restart(), or reverse(). You can even tween a TweenGroup&#8217;s &#8220;progress&#8221; property to fastforward or rewind the entire group/sequence.</li>
<li><strong>Ease of use</strong> &#8211; Designers and Developers alike rave about how intuitive the GreenSock tweening platform is.</li>
<li><strong>Updates</strong> &#8211; Frequent updates and feature additions make the GreenSock tweening platform reliable and robust.</li>
<li><strong>AS2 and AS3</strong> &#8211; Most other engines are only developed for AS2 or AS3 but not both.</li>
</ul>
<blockquote><p><a href="http://blog.greensock.com/tweenliteas3/" target="_blank">Download TweenLite</a></p></blockquote>
<h3><a href="http://code.google.com/p/tweensy/wiki/TweensyZero" target="_blank">TweensyZero</a></h3>
<p>(2.9k) base</p>
<blockquote><p><a href="http://code.google.com/p/tweensy/wiki/TweensyZero" target="_blank">Here are some simple steps to help you get started</a> with creating your first animations with <a href="http://code.google.com/p/tweensy/wiki/TweensyZero">TweensyZero</a>. <a href="http://code.google.com/p/tweensy/wiki/TweensyZero">TweensyZero</a> is a light weight version of Tweensy most core features found in Tweensy are available to <a href="http://code.google.com/p/tweensy/wiki/TweensyZero">TweensyZero</a>. Documentation for <a href="http://code.google.com/p/tweensy/wiki/TweensyZero">TweensyZero</a> can be found under the folder &#8216;documentation/zero&#8217; or <a rel="nofollow" href="http://docs.flashdynamix.com/tweensy/zero/">online</a></p></blockquote>
<blockquote><p><a href="http://code.google.com/p/tweensy/downloads/list" target="_blank">Download TweensyZero<br />
</a></p></blockquote>
<h3><a href="http://www.gskinner.com/blog/archives/2009/02/gtweeny_lightwe.html" target="_blank">gTweeny</a></h3>
<p>(3k)</p>
<blockquote><p>gTweeny is <a href="http://www.gskinner.com/blog/archives/2009/02/gtween_beta_5_r.html">gTween</a>&#8217;s lightweight younger sibling. It strips a lot of the secondary features of GTween (proxy, timing modes, etc) in favour of smaller file size. It is currently under 3kb&#8230;</p>
<p><a href="http://www.gskinner.com/libraries/gtween/#download" target="_blank">Download gTweeny</a></p></blockquote>
<p><strong>Here is a list of all open AS3 &#8220;Micro&#8221; Tweening engines &lt; 5k<br />
</strong></p>
<ul class="xoxo blogroll">
<li><a href="http://thelaborat.org/?p=118" target="_blank">ByteTween</a> (1.7k)</li>
<li><a href="http://blog.greensock.com/tweenliteas3">TweenLite</a> (2.7k)</li>
<li><a href="http://code.google.com/p/tweensy/wiki/TweensyZero" target="_blank">TweensyZero </a>(2.9k)</li>
<li><a href="http://www.gskinner.com/libraries/gtween/" target="_blank">gTweeny</a> (3k)<a href="http://blog.greensock.com/tweenliteas3"><br />
</a></li>
</ul>
<p><strong>Here is a list of all open AS3 Tweening engines and base kits</strong></p>
<ul class="xoxo blogroll">
<li><a href="http://www.alex-uhlmann.de/flash/animationpackage/">Animation Package</a></li>
<li><a href="http://www.boostworthy.com/blog/?p=170">AS3 Animation System 2.1</a></li>
<li><a href="http://www.uza.lt/codex/as3-easing/" target="_blank">AS3Easing</a></li>
<li><a href="http://www.goasap.org/">Go</a> (base animation kit &#8211; create your own tween engine)</li>
<li><a href="http://www.gskinner.com/blog/archives/2008/08/gtween_a_new_tw.html" target="_blank">gTween</a><a href="http://www.gskinner.com/blog/archives/2008/08/gtween_a_new_tw.html" target="_blank"><br />
</a></li>
<li><a href="http://code.google.com/p/kitchensynclib/" target="_blank">KitchenSync</a></li>
<li><a href="http://code.google.com/p/twease/" target="_blank">Twease</a></li>
<li><a href="http://code.google.com/p/tweener/">Tweener</a> (9k)</li>
<li><a href="http://code.google.com/p/tweensy/" target="_blank">Tweensy</a></li>
<li><a href="http://blog.greensock.com/tweenliteas3">TweenLite (TweenMax)</a></li>
</ul>
<p>The decision on which to use can be affected be features you want, how it feels (many use the same object syntax so it is dynamic), what performance do they have (all are orders of magnitude faster than the built in tween (flash) or transitions (mx/flex)), which size is ok, author/community support needed (some are more active than others adding features or simplifying and tweaking performance methodically), and many other factors.  There are definitely plenty to choose from.</p>
<p><strong>Speed Tests for many Tween Engines</strong></p>
<ul>
<li><a href="http://blog.greensock.com/tweening-speed-test/" target="_blank">Green Sock Tweening Comparison Tool</a></li>
<li><a href="http://go.mosessupposes.com/?p=5" target="_blank">Moses Benchmarking Tool </a>(relative comparison against SimpleAS3Tween sample)</li>
</ul>
<p>For more on each features see their sites or these previous lists on tweening engines:</p>
<ul>
<li><a title="Permanent Link: Updated: List of Best Animation Packages for AS3" rel="bookmark" href="../2007/06/25/updated-list-of-best-animation-packages-for-as3/">Updated: List of Best Animation Packages for AS3</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/02/05/as3-tween-engines-getting-lighter-with-gtweeny-bytetween-tweenlite-and-tweensyzero/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>AS3 SoundManager Class for Flash Updated for Tweener</title>
		<link>http://drawlogic.com/2009/01/16/as3-soundmanager-class-for-flash-updated-for-tweener/</link>
		<comments>http://drawlogic.com/2009/01/16/as3-soundmanager-class-for-flash-updated-for-tweener/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 21:24:14 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[AUDIO]]></category>
		<category><![CDATA[DEVELOPMENT]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[manager]]></category>
		<category><![CDATA[sound]]></category>
		<category><![CDATA[tweener]]></category>
		<category><![CDATA[tweenlite]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=351</guid>
		<description><![CDATA[I use a SoundManager class for games and interactives that require it which I picked up at evolve by Matt Przybylski.  But I sometimes need to use Tweener rather than TweenLite depending on what the project uses already. So here is the class updated with Tweener.  Just grab the latest Tweener to work with this.  [...]]]></description>
			<content:encoded><![CDATA[<p>I use a SoundManager class for games and interactives that require it which I picked up at <a href="http://evolve.reintroducing.com/2008/07/15/news/as3-soundmanager/" target="_blank">evolve </a>by <span class="comment-author">Matt Przybylski</span>.  But I sometimes need to use Tweener rather than TweenLite depending on what the project uses already. So here is the class updated with Tweener.  Just grab the latest <a href="http://code.google.com/p/tweener/" target="_blank">Tweener </a>to work with this.  Sound is one of those things like tweening, it is easier to reuse code if everyone uses common libraries.</p>
<pre lang="actionscript">package game.util
{
	import caurina.transitions.properties.SoundShortcuts;
	import flash.media.Sound;
	import flash.media.SoundChannel;
	import flash.media.SoundLoaderContext;
	import flash.media.SoundTransform;
	import flash.net.URLRequest;
	import flash.utils.Dictionary;
	import flash.utils.getQualifiedClassName;
	import caurina.transitions.*;
	/**
	 * The SoundManager is a singleton that allows you to have various ways to control sounds in your project.
	 *

	 * The SoundManager can load external or library sounds, pause/mute/stop/control volume for one or more sounds at a time,
	 * fade sounds up or down, and allows additional control to sounds not readily available through the default classes.
	 *

	 * This class is dependent on TweenLite (http://www.tweenlite.com) to aid in easily fading the volume of the sound.
	 *
	 * @author Matt Przybylski [http://www.reintroducing.com]
	 * @version 1.0
	 *
	 * @author Ryan Christensen (http://drawlogic.com)
	 * @version 1.1 - added Tweener support and removed TweenLite support
	 */
	public class SoundManager
	{
//- PRIVATE &amp; PROTECTED VARIABLES -------------------------------------------------------------------------
		// singleton instance
		private static var _instance:SoundManager;
		private static var _allowInstance:Boolean;
		private var _soundsDict:Dictionary;
		private var _sounds:Array;
//- PUBLIC &amp; INTERNAL VARIABLES ---------------------------------------------------------------------------
//- CONSTRUCTOR -------------------------------------------------------------------------------------------
		// singleton instance of SoundManager
		public static function getInstance():SoundManager
		{
			if (SoundManager._instance == null)
			{
				SoundManager._allowInstance = true;
				SoundManager._instance = new SoundManager();
				SoundManager._allowInstance = false;
			}
			return SoundManager._instance;
		}
		public function SoundManager()
		{
			this._soundsDict = new Dictionary(true);
			this._sounds = new Array();
			if (!SoundManager._allowInstance)
			{
				throw new Error("Error: Use SoundManager.getInstance() instead of the new keyword.");
			}
		}
//- PRIVATE &amp; PROTECTED METHODS ---------------------------------------------------------------------------
//- PUBLIC &#038; INTERNAL METHODS -----------------------------------------------------------------------------
		/**
		 * Adds a sound from the library to the sounds dictionary for playing in the future.
		 *
		 * @param $linkageID The class name of the library symbol that was exported for AS
		 * @param $name The string identifier of the sound to be used when calling other methods on the sound
		 *
		 * @return Boolean A boolean value representing if the sound was added successfully
		 */
		public function addLibrarySound($linkageID:*, $name:String):Boolean
		{
			for (var i:int = 0; i < this._sounds.length; i++)
			{
				if (this._sounds[i].name == $name) return false;
			}
			var sndObj:Object = new Object();
			var snd:Sound = new $linkageID;
			sndObj.name = $name;
			sndObj.sound = snd;
			sndObj.channel = new SoundChannel();
			sndObj.position = 0;
			sndObj.paused = true;
			sndObj.volume = 1;
			sndObj.startTime = 0;
			sndObj.loops = 0;
			sndObj.pausedByAll = false;
			this._soundsDict[$name] = sndObj;
			this._sounds.push(sndObj);
			return true;
		}
		/**
		 * Adds an external sound to the sounds dictionary for playing in the future.
		 *
		 * @param $path A string representing the path where the sound is on the server
		 * @param $name The string identifier of the sound to be used when calling other methods on the sound
		 * @param $buffer The number, in milliseconds, to buffer the sound before you can play it (default: 1000)
		 * @param $checkPolicyFile A boolean that determines whether Flash Player should try to download a cross-domain policy file from the loaded sound's server before beginning to load the sound (default: false)
		 *
		 * @return Boolean A boolean value representing if the sound was added successfully
		 */
		public function addExternalSound($path:String, $name:String, $buffer:Number = 1000, $checkPolicyFile:Boolean = false):Boolean
		{
			for (var i:int = 0; i < this._sounds.length; i++)
			{
				if (this._sounds[i].name == $name) return false;
			}
			var sndObj:Object = new Object();
			var snd:Sound = new Sound(new URLRequest($path), new SoundLoaderContext($buffer, $checkPolicyFile));
			sndObj.name = $name;
			sndObj.sound = snd;
			sndObj.channel = new SoundChannel();
			sndObj.position = 0;
			sndObj.paused = true;
			sndObj.volume = 1;
			sndObj.startTime = 0;
			sndObj.loops = 0;
			sndObj.pausedByAll = false;
			this._soundsDict[$name] = sndObj;
			this._sounds.push(sndObj);
			return true;
		}

		/**
		 * Removes a sound from the sound dictionary.  After calling this, the sound will not be available until it is re-added.
		 *
		 * @param $name The string identifier of the sound to remove
		 *
		 * @return void
		 */
		public function removeSound($name:String):void
		{
			for (var i:int = 0; i < this._sounds.length; i++)
			{
				if (this._sounds[i].name == $name)
				{
					this._sounds[i] = null;
					this._sounds.splice(i, 1);
				}
			}
			delete this._soundsDict[$name];
		}
		/**
		 * Removes all sounds from the sound dictionary.
		 *
		 * @return void
		 */
		public function removeAllSounds():void
		{
			for (var i:int = 0; i &lt; this._sounds.length; i++)
			{
				this._sounds[i] = null;
			}
			this._sounds = new Array();
			this._soundsDict = new Dictionary(true);
		}
		/**
		 * Plays or resumes a sound from the sound dictionary with the specified name.
		 *
		 * @param $name The string identifier of the sound to play
		 * @param $volume A number from 0 to 1 representing the volume at which to play the sound (default: 1)
		 * @param $startTime A number (in milliseconds) representing the time to start playing the sound at (default: 0)
		 * @param $loops An integer representing the number of times to loop the sound (default: 0)
		 *
		 * @return void
		 */
		public function playSound($name:String, $volume:Number = 1, $startTime:Number = 0, $loops:int = 0):void
		{
			var snd:Object = this._soundsDict[$name];
			snd.volume = $volume;
			snd.startTime = $startTime;
			snd.loops = $loops;
			if (snd.paused)
			{
				snd.channel = snd.sound.play(snd.position, snd.loops, new SoundTransform(snd.volume));
			}
			else
			{
				snd.channel = snd.sound.play($startTime, snd.loops, new SoundTransform(snd.volume));
			}
			snd.paused = false;
		}
		/**
		 * Stops the specified sound.
		 *
		 * @param $name The string identifier of the sound
		 *
		 * @return void
		 */
		public function stopSound($name:String):void
		{
			var snd:Object = this._soundsDict[$name];
			snd.paused = true;
			snd.channel.stop();
			snd.position = snd.channel.position;
		}
		/**
		 * Pauses the specified sound.
		 *
		 * @param $name The string identifier of the sound
		 *
		 * @return void
		 */
		public function pauseSound($name:String):void
		{
			var snd:Object = this._soundsDict[$name];
			snd.paused = true;
			snd.position = snd.channel.position;
			snd.channel.stop();
		}
		/**
		 * Plays all the sounds that are in the sound dictionary.
		 *
		 * @param $useCurrentlyPlayingOnly A boolean that only plays the sounds which were currently playing before a pauseAllSounds() or stopAllSounds() call (default: false)
		 *
		 * @return void
		 */
		public function playAllSounds($useCurrentlyPlayingOnly:Boolean = false):void
		{
			for (var i:int = 0; i < this._sounds.length; i++)
			{
				var id:String = this._sounds[i].name;
				if ($useCurrentlyPlayingOnly)
				{
					if (this._soundsDict[id].pausedByAll)
					{
						this._soundsDict[id].pausedByAll = false;
						this.playSound(id);
					}
				}
				else
				{
					this.playSound(id);
				}
			}
		}
		/**
		 * Stops all the sounds that are in the sound dictionary.
		 *
		 * @param $useCurrentlyPlayingOnly A boolean that only stops the sounds which are currently playing (default: true)
		 *
		 * @return void
		 */
		public function stopAllSounds($useCurrentlyPlayingOnly:Boolean = true):void
		{
			for (var i:int = 0; i < this._sounds.length; i++)
			{
				var id:String = this._sounds[i].name;
				if ($useCurrentlyPlayingOnly)
				{
					if (!this._soundsDict[id].paused)
					{
						this._soundsDict[id].pausedByAll = true;
						this.stopSound(id);
					}
				}
				else
				{
					this.stopSound(id);
				}
			}
		}
		/**
		 * Pauses all the sounds that are in the sound dictionary.
		 *
		 * @param $useCurrentlyPlayingOnly A boolean that only pauses the sounds which are currently playing (default: true)
		 *
		 * @return void
		 */
		public function pauseAllSounds($useCurrentlyPlayingOnly:Boolean = true):void
		{
			for (var i:int = 0; i < this._sounds.length; i++)
			{
				var id:String = this._sounds[i].name;
				if ($useCurrentlyPlayingOnly)
				{
					if (!this._soundsDict[id].paused)
					{
						this._soundsDict[id].pausedByAll = true;
						this.pauseSound(id);
					}
				}
				else
				{
					this.pauseSound(id);
				}
			}
		}
		/**
		 * Fades the sound to the specified volume over the specified amount of time.
		 *
		 * @param $name The string identifier of the sound
		 * @param $targVolume The target volume to fade to, between 0 and 1 (default: 0)
		 * @param $fadeLength The time to fade over, in seconds (default: 1)
		 *
		 * @return void
		 */
		public function fadeSound($name:String, $targVolume:Number = 0, $fadeLength:Number = 1):void
		{
			var fadeChannel:SoundChannel = this._soundsDict[$name].channel;
			SoundShortcuts.init();
			Tweener.addTween(fadeChannel, { _sound_volume: $targVolume, time: $fadeLength, transition:"linear" } );
			//TweenLite.to(fadeChannel, $fadeLength, {volume: $targVolume});
		}
		/**
		 * Mutes the volume for all sounds in the sound dictionary.
		 *
		 * @return void
		 */
		public function muteAllSounds():void
		{
			for (var i:int = 0; i < this._sounds.length; i++)
			{
				var id:String = this._sounds[i].name;
				this.setSoundVolume(id, 0);
			}
		}
		/**
		 * Resets the volume to their original setting for all sounds in the sound dictionary.
		 *
		 * @return void
		 */
		public function unmuteAllSounds():void
		{
			for (var i:int = 0; i < this._sounds.length; i++)
			{
				var id:String = this._sounds[i].name;
				var snd:Object = this._soundsDict[id];
				var curTransform:SoundTransform = snd.channel.soundTransform;
				curTransform.volume = snd.volume;
				snd.channel.soundTransform = curTransform;
			}
		}
		/**
		 * Sets the volume of the specified sound.
		 *
		 * @param $name The string identifier of the sound
		 * @param $volume The volume, between 0 and 1, to set the sound to
		 *
		 * @return void
		 */
		public function setSoundVolume($name:String, $volume:Number):void
		{
			var snd:Object = this._soundsDict[$name];
			var curTransform:SoundTransform = snd.channel.soundTransform;
			curTransform.volume = $volume;
			snd.channel.soundTransform = curTransform;
		}
		/**
		 * Gets the volume of the specified sound.
		 *
		 * @param $name The string identifier of the sound
		 *
		 * @return Number The current volume of the sound
		 */
		public function getSoundVolume($name:String):Number
		{
			return this._soundsDict[$name].channel.soundTransform.volume;
		}
		/**
		 * Gets the position of the specified sound.
		 *
		 * @param $name The string identifier of the sound
		 *
		 * @return Number The current position of the sound, in milliseconds
		 */
		public function getSoundPosition($name:String):Number
		{
			return this._soundsDict[$name].channel.position;
		}
		/**
		 * Gets the duration of the specified sound.
		 *
		 * @param $name The string identifier of the sound
		 *
		 * @return Number The length of the sound, in milliseconds
		 */
		public function getSoundDuration($name:String):Number
		{
			return this._soundsDict[$name].sound.length;
		}
		/**
		 * Gets the sound object of the specified sound.
		 *
		 * @param $name The string identifier of the sound
		 *
		 * @return Sound The sound object
		 */
		public function getSoundObject($name:String):Sound
		{
			return this._soundsDict[$name].sound;
		}
		/**
		 * Identifies if the sound is paused or not.
		 *
		 * @param $name The string identifier of the sound
		 *
		 * @return Boolean The boolean value of paused or not paused
		 */
		public function isSoundPaused($name:String):Boolean
		{
			return this._soundsDict[$name].paused;
		}
		/**
		 * Identifies if the sound was paused or stopped by calling the stopAllSounds() or pauseAllSounds() methods.
		 *
		 * @param $name The string identifier of the sound
		 *
		 * @return Number The boolean value of pausedByAll or not pausedByAll
		 */
		public function isSoundPausedByAll($name:String):Boolean
		{
			return this._soundsDict[$name].pausedByAll;
		}
//- EVENT HANDLERS ----------------------------------------------------------------------------------------
//- GETTERS &amp; SETTERS -------------------------------------------------------------------------------------
		public function get sounds():Array
		{
			return this._sounds;
		}
//- HELPERS -----------------------------------------------------------------------------------------------
		public function toString():String
		{
			return getQualifiedClassName(this);
		}
//- END CLASS ---------------------------------------------------------------------------------------------
	}
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/01/16/as3-soundmanager-class-for-flash-updated-for-tweener/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
