<?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>DesignFission &#187; Flash</title>
	<atom:link href="http://www.designfission.com/blog/category/flash/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.designfission.com/blog</link>
	<description>Flash, Web, Javascript and everything else</description>
	<lastBuildDate>Mon, 06 Sep 2010 03:01:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>short &#8211; bringing back sweet old AS2 syntax to AS3</title>
		<link>http://www.designfission.com/blog/2010/09/06/short-bringing-back-sweet-old-as2-syntax-to-as3/</link>
		<comments>http://www.designfission.com/blog/2010/09/06/short-bringing-back-sweet-old-as2-syntax-to-as3/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 03:01:39 +0000</pubDate>
		<dc:creator>Edwin</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[fug]]></category>
		<category><![CDATA[short]]></category>

		<guid isPermaLink="false">http://www.designfission.com/blog/?p=384</guid>
		<description><![CDATA[A new AS3 framework has been released by Arul @ Luracast. Do check it out at http://code.google.com/p/short/. I&#8217;m pretty excited about it because of 2 things. Firstly, it&#8217;s the first framework released by someone based in Singapore. Secondly, I share the same frustration as the creator &#8211; a simple getURL that used to be so [...]

<h2>Related Posts</h2><a href='http://www.designfission.com/blog/2007/10/05/adobe-thermo/' rel='bookmark' title='Permanent Link: Adobe Thermo'>Adobe Thermo</a>
<a href='http://www.designfission.com/blog/2007/08/10/full-browserfull-screen-flash/' rel='bookmark' title='Permanent Link: Full Browser/Full Screen Flash'>Full Browser/Full Screen Flash</a>
<a href='http://www.designfission.com/blog/2010/01/31/garbage-collector-in-as3/' rel='bookmark' title='Permanent Link: Garbage Collector in AS3'>Garbage Collector in AS3</a>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F09%2F06%2Fshort-bringing-back-sweet-old-as2-syntax-to-as3%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F09%2F06%2Fshort-bringing-back-sweet-old-as2-syntax-to-as3%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>A new AS3 framework has been released by Arul @ Luracast. Do check it out at <a href="http://code.google.com/p/short/">http://code.google.com/p/short/</a>.</p>
<p>I&#8217;m pretty excited about it because of 2 things. Firstly, it&#8217;s the first framework released by someone based in Singapore. Secondly, I share the same frustration as the creator &#8211; a simple getURL that used to be so simple now takes more than 3 lines of code to create!</p>
<p>And lastly, if you&#8217;re based in Singapore, do check out the upcoming <a href="http://fug.sg/">Flex User Group</a> (fug) meeting that&#8217;s on this Wednesday (8 Sep 2010). <a href="http://www.facebook.com/event.php?eid=149346475090039&#038;ref=mf">RSVP at Facebook</a>.</p>


<h2>Related Posts</h2><a href='http://www.designfission.com/blog/2007/10/05/adobe-thermo/' rel='bookmark' title='Permanent Link: Adobe Thermo'>Adobe Thermo</a>
<a href='http://www.designfission.com/blog/2007/08/10/full-browserfull-screen-flash/' rel='bookmark' title='Permanent Link: Full Browser/Full Screen Flash'>Full Browser/Full Screen Flash</a>
<a href='http://www.designfission.com/blog/2010/01/31/garbage-collector-in-as3/' rel='bookmark' title='Permanent Link: Garbage Collector in AS3'>Garbage Collector in AS3</a>
]]></content:encoded>
			<wfw:commentRss>http://www.designfission.com/blog/2010/09/06/short-bringing-back-sweet-old-as2-syntax-to-as3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Essential Classes for Flash Developers</title>
		<link>http://www.designfission.com/blog/2010/04/02/essential-classes-for-flash-developers/</link>
		<comments>http://www.designfission.com/blog/2010/04/02/essential-classes-for-flash-developers/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 12:42:34 +0000</pubDate>
		<dc:creator>Edwin</dc:creator>
				<category><![CDATA[AS2]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.designfission.com/blog/?p=363</guid>
		<description><![CDATA[If you’ve been developing microsites in Flash, chances are, you’ve probably met the same problems that I did. I’ve listed down some of the classes that have really helped me in my work with a short description, and some pros and cons.

<h2>Related Posts</h2><a href='http://www.designfission.com/blog/2007/08/21/xml2object/' rel='bookmark' title='Permanent Link: XML2Object'>XML2Object</a>
<a href='http://www.designfission.com/blog/2007/08/18/drag-slide-fade-20-class-library/' rel='bookmark' title='Permanent Link: Drag Slide Fade 2.0 Class Library'>Drag Slide Fade 2.0 Class Library</a>
<a href='http://www.designfission.com/blog/2010/03/21/tank-commander-battlefield-bad-company-2/' rel='bookmark' title='Permanent Link: Flash, Arduino, Influxis and SmartFox'>Flash, Arduino, Influxis and SmartFox</a>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F04%2F02%2Fessential-classes-for-flash-developers%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F04%2F02%2Fessential-classes-for-flash-developers%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<h2>XML2Object (AS2)</h2>
<p><a href="http://www.sephiroth.it/file_detail.php?id=129" target="_blank">Documentation / Download</a></p>
<p>Developed by sephiroth, one of the Flash gurus in the Flash community, XML2Object does what it’s name says. It converts an XML to an Object. Easily, I might add.</p>
<p><strong>Pros:</strong></p>
<ul>
<li>Allows you to access XML elements just like an object.</li>
</ul>
<p><strong>Example:</strong><br />
Transform the passed XML source into an XML readable Object. </p>
<pre class="brush: as3;">
import it.sephiroth.XML2Object;
var dataObj:XML = new XML ();
//
dataObj.ignoreWhite = true;
var sXML:String = &quot;path/to/xml_file.xml&quot;;
function handleLoad (success:Boolean) {
	if (success) {
		_root.xmlObj = new XML2Object ().parseXML (dataObj);
	}
}
//
dataObj.onLoad = handleLoad;
//Load the data
dataObj.load (sXML);
</pre>
<p><strong>Cons: </strong></p>
<ul>
<li>It doesn’t detect a single item as an array. This is a problem if, for example, you load a gallery, and there’s only 1 item in the gallery. Your code will be built to entertain more than 1 item but it will not recognise a single item as an array.</li>
</ul>
<p>?</p>
<h2>Bitmap Exporter (AS2/3)</h2>
<p><a href="http://www.quasimondo.com/archives/000572.php" target="_blank">Documentation</a> | <a href="http://www.quasimondo.com/scrapyard/BitmapExporter_v22.zip" target="_blank">Download</a></p>
<p>There are alot of classes that utilises the ByteArray to export whatever that is in Flash to an image, but for AS2, this is pretty much the only available one. (Do let me know if there’s a better one.)<br />
As mentioned earlier, the Bitmap Exporter allows you to export a movieclip from Flash with predefined width, height and quality settings. </p>
<p><strong>Pros:</strong></p>
<ul>
<li>Probably the only class that allows you to do this with AS2.</li>
</ul>
<p><strong>Cons:</strong></p>
<ul>
<li>Utilises the server heavily.</li>
<li>The exporting takes some time.</li>
</ul>
<h2>Transform Manager (AS2)</h2>
<p><a href="http://www.greensock.com/transformmanageras2/" target="_blank">Documentation</a> | <a href="http://www.greensock.com/as/TransformManager/TransformManager-as2-legacy.zip" target="_blank">Download</a></p>
<p>Ever wanted to create an application just like Photoshop? Well, maybe not exactly like Photoshop, but at least to allow your users to create their own customise their very own [insert brand object here].<br />
The Transform Manager by Grant Skinner does the job perfectly. For me, the class makes rotating, scaling, moving and deleting objects very intuitive. However, usability experts might argue that users who are not used to Photoshop or any other image editing tools might find it a problem. Nevertheless, this is an awesome tool to have, and building on top of the class is possible as gskinner has graciously released the classes with the source code.<br />
Like TweenMax, Grant’s documentation is awesome and is impossible to not understand.<br />
Note: The link I posted above is to an older version that is free, the current and newer version costs $299. An AS3 version is also available but you will need to join the Club Greensock to get it.<br />
?</p>
<h2>Sephiroth Color Picker Component (AS2)</h2>
<p>Documentation/ Download : <a href="http://www.sephiroth.it/file_detail.php?id=147" target="_blank">http://www.sephiroth.it/file_detail.php?id=147</a></p>
<p>This is a UI Component that was never added by Flash. Thanks to Sephiroth though, you now get a lightweight, Color Picker Component for free.</p>
<p>There are dozens of classes released by the great Flash community all the time, and it will be impossible to list them all in this one article, what I’ve listed here are the ones I find myself reusing or has benefited me greatly.<br />
You’ll also realise that I have not added any Tweening engines to this article as I believe they deserve to have a list on their own. Also, the classes listed here are mainly AS2. I will be sharing a similar list for AS3 soon.<br />
Please feel free to add in more classes or components that you believe should be in this list.</p>


<h2>Related Posts</h2><a href='http://www.designfission.com/blog/2007/08/21/xml2object/' rel='bookmark' title='Permanent Link: XML2Object'>XML2Object</a>
<a href='http://www.designfission.com/blog/2007/08/18/drag-slide-fade-20-class-library/' rel='bookmark' title='Permanent Link: Drag Slide Fade 2.0 Class Library'>Drag Slide Fade 2.0 Class Library</a>
<a href='http://www.designfission.com/blog/2010/03/21/tank-commander-battlefield-bad-company-2/' rel='bookmark' title='Permanent Link: Flash, Arduino, Influxis and SmartFox'>Flash, Arduino, Influxis and SmartFox</a>
]]></content:encoded>
			<wfw:commentRss>http://www.designfission.com/blog/2010/04/02/essential-classes-for-flash-developers/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SWX Twitter API For Dummies</title>
		<link>http://www.designfission.com/blog/2010/03/22/swx-twitter-api-for-dummies/</link>
		<comments>http://www.designfission.com/blog/2010/03/22/swx-twitter-api-for-dummies/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 10:26:58 +0000</pubDate>
		<dc:creator>Edwin</dc:creator>
				<category><![CDATA[AS2]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[as2]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[fla]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[swx]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.designfission.com/blog/?p=319</guid>
		<description><![CDATA[Learn how to use the great SWX Twitter API written by Aral Balkan. (with source code)

<h2>Related Posts</h2><a href='http://www.designfission.com/blog/2007/09/16/first-step-into-as30/' rel='bookmark' title='Permanent Link: First step into AS3.0'>First step into AS3.0</a>
<a href='http://www.designfission.com/blog/2007/09/16/actionscript-30-basics-the-moving-ball/' rel='bookmark' title='Permanent Link: Actionscript 3.0 Basics: The Moving Ball'>Actionscript 3.0 Basics: The Moving Ball</a>
<a href='http://www.designfission.com/blog/2007/07/31/fusekit-tutorial-2/' rel='bookmark' title='Permanent Link: Fusekit Tutorial #2'>Fusekit Tutorial #2</a>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F03%2F22%2Fswx-twitter-api-for-dummies%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F03%2F22%2Fswx-twitter-api-for-dummies%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>I&#8217;ve always had a problem understanding documentation for APIs, hence when I do get something, I have this urge to share so that anyone who has the same problem can do what I am trying to do.</p>
<p>In my opinion, the best documentation ever written is by <a href="http://twitter.com/Gskinner" target="_blank">gskinner </a>for <a href="http://www.greensock.com/tweenmax/" target="_blank">TweenMax</a>, and I think few would argue with me about that. </p>
<p>Having said that, the documentation written by aral for the <a href="http://apiwiki.twitter.com/SWX-Twitter-API" target="_blank">SWX Twitter API</a> is actually not too bad as well. But being completely new to both the Twitter API and the <a href="http://apiwiki.twitter.com/SWX-Twitter-API" target="_blank">SWX Twitter API</a>, one might be lost upon landing on the API page. </p>
<p>Now that my ramblings are done, on with the tutorial. </p>
<p>First, download the SWX Code from <a href="http://code.google.com/p/swx-format/downloads/list" target="_blank">here</a>. As of the time of writing, go ahead and download the v2 which is still in BETA as it works just fine.</p>
<p>This tutorial will show you how easy it is to update your Twitter status using the SWX Twitter API. </p>
<p>Here&#8217;s a look at what we will be creating:<br />

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_twitter_268940540"
			class="flashmovie"
			width="400"
			height="380">
	<param name="movie" value="http://www.designfission.com/swxtutorial/twitter.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.designfission.com/swxtutorial/twitter.swf"
			name="fm_twitter_268940540"
			width="400"
			height="380">
	<!--<![endif]-->
		
<p><a href="http://adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>

	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<p>Code:</p>
<pre class="brush: as3;">
stop();
loader.serviceClass = &quot;Twitter&quot;;
loader.method = &quot;getPublicUpdates&quot;;
loader.debug = true;
loader.loadMovie(&quot;http://swxformat.org/php/swx.php&quot;,&quot;GET&quot;);

import org.swxformat.*;
var swx:SWX = new SWX();
swx.gateway = &quot;http://swxformat.org/php/swx.php&quot;;
swx.encoding = &quot;POST&quot;;
swx.timeout = 10;
swx.debug = true;
swx.faultHandler = Delegate.create(this, faultHandler);
swx.progressHandler = Delegate.create(this, progressHandler);
swx.timeoutHandler = Delegate.create(this, timeoutHandler);

function updateTwitter() {

	var callParameters:Object = {
		serviceClass:&quot;Twitter&quot;,
		method:&quot;update&quot;,
		args:[message_txt.text, username_txt.text, password_txt.text], 

		result: [this, resultHandler],
		progress: [this, progressHandler],
		timeout: [this, timeoutHandler],
		fault: [this, faultHandler],
		debug: true
	}
	swx.call(callParameters);
	isLoading(true);
}

function resultHandler(event:Object) {
	isLoading(false);
	status.text = event.result;
}

function progressHandler(event:Object) {
	trace(&quot;progressHandler: &quot; + event.bytesLoaded + &quot; of &quot; + event.bytesTotal);
}
function timeoutHandler(event:Object) {
	isLoading(false);
	status.text = &quot;Call timeout. Please try again.&quot;;
}
function faultHandler(event:Object) {
	isLoading(false);
	status.text = &quot;Call fault. Please try again.&quot;;
}

update_btn.onRelease = function() {
	updateTwitter();
};
</pre>
<p><a href="http://www.designfission.com/swxtutorial/twitter.zip">Source Files</a> (AS2.0 | CS3 Format)</p>
<p>I&#8217;m not going to explain the code unless someone requests for it as it&#8217;s really quite simple and straightforward. The other reason is due to a lack of time. I figured if I don&#8217;t share this now, I might not want to do it in the future, so hey, at least you have the code. <img src='http://www.designfission.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Once again, hope this helps someone out there.</p>
<p>Note: For other Flash Developers like me out there, if you need to integrate Facebook as well using AS2.0, take a look at <a href="http://www.echoesofburmajones.com/2009/09/18/20/facebook_connect_in_flash_actionscript_2.htm" target="_blank">http://www.echoesofburmajones.com/2009/09/18/20/facebook_connect_in_flash_actionscript_2.htm</a> for an excellent tutorial (w/source files)!</p>
<p>If this post helped you in any way, help me in return by clicking on the ad below:<br />
<script type="text/javascript"><!--
google_ad_client = "pub-1241157645351204";
/* 300x250, created 3/27/10 */
google_ad_slot = "0640751317";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>


<h2>Related Posts</h2><a href='http://www.designfission.com/blog/2007/09/16/first-step-into-as30/' rel='bookmark' title='Permanent Link: First step into AS3.0'>First step into AS3.0</a>
<a href='http://www.designfission.com/blog/2007/09/16/actionscript-30-basics-the-moving-ball/' rel='bookmark' title='Permanent Link: Actionscript 3.0 Basics: The Moving Ball'>Actionscript 3.0 Basics: The Moving Ball</a>
<a href='http://www.designfission.com/blog/2007/07/31/fusekit-tutorial-2/' rel='bookmark' title='Permanent Link: Fusekit Tutorial #2'>Fusekit Tutorial #2</a>
]]></content:encoded>
			<wfw:commentRss>http://www.designfission.com/blog/2010/03/22/swx-twitter-api-for-dummies/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Flash, Arduino, Influxis and SmartFox</title>
		<link>http://www.designfission.com/blog/2010/03/21/tank-commander-battlefield-bad-company-2/</link>
		<comments>http://www.designfission.com/blog/2010/03/21/tank-commander-battlefield-bad-company-2/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 20:52:05 +0000</pubDate>
		<dc:creator>Edwin</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[battlefield]]></category>
		<category><![CDATA[battlefield bad company 2]]></category>
		<category><![CDATA[bf2]]></category>
		<category><![CDATA[bfbc2]]></category>
		<category><![CDATA[flash media server]]></category>
		<category><![CDATA[fms]]></category>
		<category><![CDATA[influxis]]></category>
		<category><![CDATA[rc tank]]></category>
		<category><![CDATA[serproxy]]></category>
		<category><![CDATA[smartfoxserver]]></category>
		<category><![CDATA[tank]]></category>
		<category><![CDATA[xbee]]></category>

		<guid isPermaLink="false">http://www.designfission.com/blog/?p=311</guid>
		<description><![CDATA[A case study of a microsite for Battlefield Bad Company 2.

Learn how I used Arduino, Flash, Smart Fox Server, and Influxis (Flash Media Server) to create the site.

<h2>Related Posts</h2><a href='http://www.designfission.com/blog/2007/09/11/more-flash-tutorials-coming-your-way/' rel='bookmark' title='Permanent Link: More Flash tutorials coming your way'>More Flash tutorials coming your way</a>
<a href='http://www.designfission.com/blog/2006/05/17/champions-league-who-are-you-rooting-for/' rel='bookmark' title='Permanent Link: Champions League- Who are you rooting for?'>Champions League- Who are you rooting for?</a>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F03%2F21%2Ftank-commander-battlefield-bad-company-2%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F03%2F21%2Ftank-commander-battlefield-bad-company-2%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>The reason why I&#8217;ve not been updating much recently: <a href="http://bit.ly/tcbfc2" target="_blank">http://bit.ly/tcbfc2</a> (the campaign has finished! thanks for all the support!)</p>
<p>The microsite was a campaign for the Singapore launch of the highly anticipated sequel: Battlefield Bad Company 2, an FPS developed by DICE and published by EA games. </p>
<p>As BF2 features destructable environments &#8211; and tanks. We came up with the idea of letting players do exactly that &#8211; in real life. What users were able to do was that they could connect to a real model tank in the physical world and battle 3 other players in a prebuilt environment.</p>
<p>A camera was mounted on each of the tank so that the connected player can &#8220;see through&#8221; the turret of the tank. Players control the tank with the keyboard and then engage other players in battle with other tanks on a diorama that was installed at a cineplex in Singapore.</p>
<p>To be able to control the tank, my tech lead stripped bare the insides of the RC tank that we got from our supplier, <a href="http://www.vstank.com/" target="_blank">VSTank</a>, and put in his own customised and improvised version of the Arduino + XBee shield + Xbee components. Customised batteries were ordered and modded to power the Arduino which then passes the commands received through the XBee to the tank motors. </p>
<p>Each tank has a defined server which is actually a Netbook. To enable the sending of Serial data via the USB COM ports, serproxy was used along with the excellent SmartFoxServer. As there was no stable wifi-connection in the cineplex, the netbooks were connected using M1&#8242;s Mobile Broadband service (a 3G HSDPA network). </p>
<p>Due to the slow speeds of the mobile broadband, we had to sacrifice some video quality to achieve minimum control lag for the players who are connecting to the tanks from all over the world. The other problem we had was the streaming of the video feeds. As Singapore does not have any web hosting companies that offer Flash Media Servers, we turned to <a href="http://www.influxis.com" target="_blank">Influxis</a>. This was perhaps the smoothest part of the entire project. The Influxis support was amazingly helpful, and the free tools and control panel that comes with every account was easy to use and set up. I am thinking of writing a tutorial for broadcasting a live feed to the world using Influxis soon! </p>
<p>As we were looking at a few alternatives at the time, the other service I tried was UStream, a free web streaming service that does exactly what I wanted. The problem though was that there was almost a 4 second delay between the feed I was broadcasting and the one that I was receiving. This was impossible to use for our game as we needed almost zero lag to let players control the tank efficiently. After signing up for the cheapest available plan (US$6/month) to do a test, we decided to go with Influxis as the 4 second delay was brought down to 0.5 seconds! </p>
<p>Next, a queue system was built so that only 4 players were able to connect to each one of the tanks. </p>
<p>The entire project was completed within 2 weeks and it generated thousands of hits from all over the world. I&#8217;m pretty sure that what we did was an industry first. It was tough but the process was fun and I learnt alot along the way. </p>
<p>Some pictures of the diorama, tanks, and Arduino:</p>
<p><img src="http://www.designfission.com/tankcommander/arduino.jpg" alt="Arduino" /><br />
The Arduino</p>
<p><img src="http://www.designfission.com/tankcommander/prototyping2.jpg" alt="Prototyping" /><br />
Prototyping</p>
<p><img src="http://www.designfission.com/tankcommander/tankv1.jpg" alt="Tank version 1" /><br />
Tank Version 1.0</p>
<p><img src="http://www.designfission.com/tankcommander/xbeeshield.jpg" alt="XBEE Shield" /><br />
The XBee Shield</p>
<p><img src="http://www.designfission.com/tankcommander/theinsides.jpg" alt="The Insides of the Tank 1" /><br />
The insides of the tank</p>
<p><img src="http://www.designfission.com/tankcommander/mountedxbees.jpg" alt="Mounted XBees" /><br />
Mounted XBees for minimum interference</p>
<p><img src="http://www.designfission.com/tankcommander/all4tanksreadytoroll.jpg" alt="All 4 Tanks!" /><br />
All 4 Tanks ready to roll!</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/Tl48h7_xYMI&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Tl48h7_xYMI&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/nrgmJ4BXGto&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/nrgmJ4BXGto&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/v8A-ytExw7k&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/v8A-ytExw7k&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>That&#8217;s all for now. I&#8217;m just sharing what I learnt during this project with everyone. Hope everyone had fun reading it and watching the videos!</p>


<h2>Related Posts</h2><a href='http://www.designfission.com/blog/2007/09/11/more-flash-tutorials-coming-your-way/' rel='bookmark' title='Permanent Link: More Flash tutorials coming your way'>More Flash tutorials coming your way</a>
<a href='http://www.designfission.com/blog/2006/05/17/champions-league-who-are-you-rooting-for/' rel='bookmark' title='Permanent Link: Champions League- Who are you rooting for?'>Champions League- Who are you rooting for?</a>
]]></content:encoded>
			<wfw:commentRss>http://www.designfission.com/blog/2010/03/21/tank-commander-battlefield-bad-company-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Master Volume Control in AS3.0</title>
		<link>http://www.designfission.com/blog/2010/02/12/master-volume-control-in-as3-0/</link>
		<comments>http://www.designfission.com/blog/2010/02/12/master-volume-control-in-as3-0/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 08:55:09 +0000</pubDate>
		<dc:creator>Edwin</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[setvolume]]></category>
		<category><![CDATA[sound]]></category>
		<category><![CDATA[soundmixer]]></category>
		<category><![CDATA[soundtransform]]></category>
		<category><![CDATA[stop]]></category>
		<category><![CDATA[stopall]]></category>

		<guid isPermaLink="false">http://www.designfission.com/blog/2010/02/12/master-volume-control-in-as3-0/</guid>
		<description><![CDATA[Source code after the jump.

<h2>Related Posts</h2><a href='http://www.designfission.com/blog/2010/01/05/stop-all-sounds-in-flash-as3/' rel='bookmark' title='Permanent Link: stop all sounds in Flash AS3'>stop all sounds in Flash AS3</a>
<a href='http://www.designfission.com/blog/2010/01/31/garbage-collector-in-as3/' rel='bookmark' title='Permanent Link: Garbage Collector in AS3'>Garbage Collector in AS3</a>
<a href='http://www.designfission.com/blog/2007/07/31/new-categories/' rel='bookmark' title='Permanent Link: New categories'>New categories</a>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F02%2F12%2Fmaster-volume-control-in-as3-0%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F02%2F12%2Fmaster-volume-control-in-as3-0%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Applied to a single button. Frame 1 shows that sound is on, and frame 2 shows that it&#8217;s off.</p>
<pre class="brush: as3;">
sound_mc.buttonMode = true
sound_mc.addEventListener(MouseEvent.CLICK,toggleSound)

function toggleSound(e:MouseEvent){
	var tempMC:MovieClip = e.currentTarget as MovieClip
	var sTransform:SoundTransform = new SoundTransform(1,0);
	if(tempMC.currentFrame == 1){
		tempMC.gotoAndStop(2)
		sTransform.volume = 0;
	}else if(tempMC.currentFrame == 2){
		tempMC.gotoAndStop(1)
		sTransform.volume = 1;
	}
	SoundMixer.soundTransform = sTransform;
}
</pre>
<p>If this post helped you in any way, help me in return by clicking on the ad below:<br />
<script type="text/javascript"><!--
google_ad_client = "pub-1241157645351204";
/* 300x250, created 3/27/10 */
google_ad_slot = "0640751317";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>


<h2>Related Posts</h2><a href='http://www.designfission.com/blog/2010/01/05/stop-all-sounds-in-flash-as3/' rel='bookmark' title='Permanent Link: stop all sounds in Flash AS3'>stop all sounds in Flash AS3</a>
<a href='http://www.designfission.com/blog/2010/01/31/garbage-collector-in-as3/' rel='bookmark' title='Permanent Link: Garbage Collector in AS3'>Garbage Collector in AS3</a>
<a href='http://www.designfission.com/blog/2007/07/31/new-categories/' rel='bookmark' title='Permanent Link: New categories'>New categories</a>
]]></content:encoded>
			<wfw:commentRss>http://www.designfission.com/blog/2010/02/12/master-volume-control-in-as3-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Garbage Collector in AS3</title>
		<link>http://www.designfission.com/blog/2010/01/31/garbage-collector-in-as3/</link>
		<comments>http://www.designfission.com/blog/2010/01/31/garbage-collector-in-as3/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 10:35:39 +0000</pubDate>
		<dc:creator>Edwin</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[garbage collector]]></category>
		<category><![CDATA[gc]]></category>

		<guid isPermaLink="false">http://www.designfission.com/blog/2010/01/31/garbage-collector-in-as3/</guid>
		<description><![CDATA[Being new to AS3, I didn't realise that removing a child from the display list does not kill all it's listeners, sounds, and some other stuff I don't know...

<h2>Related Posts</h2><a href='http://www.designfission.com/blog/2007/04/26/funny-answers-to-test-questions/' rel='bookmark' title='Permanent Link: Funny answers to test questions and a Cat for sale'>Funny answers to test questions and a Cat for sale</a>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F01%2F31%2Fgarbage-collector-in-as3%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F01%2F31%2Fgarbage-collector-in-as3%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>The Garbage Collector in AS3 is smart, but it&#8217;s driving me crazy.</p>
<p>Being new to AS3, I didn&#8217;t realise that removing a child from the display list does not kill all it&#8217;s listeners, sounds, and some other stuff I don&#8217;t know.</p>
<p>When it affected me, I stopped for a moment and thought why is it built this way. It is true that sometimes, after removing a child from the display list, you do want the listener to stay. </p>
<p>Yet, I don&#8217;t see why they didn&#8217;t create another function that lets user kill all listeners in a particular child before removing it. </p>
<p>Anyway, after being stuck at this problem for a few agonizing hours, I realised all I need to do, is actually create a if statement inside any listener I want to kill as well, that if it&#8217;s parent is already null, i.e. to say it is already removed, then it should kill itself! </p>
<p>A simple solution. Hopefully no new bugs turn up after implementing this as a solution. Keeping my fingers crossed. </p>
<p>If this post helped you in any way, help me in return by clicking on the ad below:<br />
<script type="text/javascript"><!--
google_ad_client = "pub-1241157645351204";
/* 300x250, created 3/27/10 */
google_ad_slot = "0640751317";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>


<h2>Related Posts</h2><a href='http://www.designfission.com/blog/2007/04/26/funny-answers-to-test-questions/' rel='bookmark' title='Permanent Link: Funny answers to test questions and a Cat for sale'>Funny answers to test questions and a Cat for sale</a>
]]></content:encoded>
			<wfw:commentRss>http://www.designfission.com/blog/2010/01/31/garbage-collector-in-as3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>New FFD Issue</title>
		<link>http://www.designfission.com/blog/2010/01/09/new-ffd-issue/</link>
		<comments>http://www.designfission.com/blog/2010/01/09/new-ffd-issue/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 23:40:57 +0000</pubDate>
		<dc:creator>Edwin</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[ffd]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[magazine]]></category>

		<guid isPermaLink="false">http://designfission.com/blog/2010/01/09/new-ffd-issue/</guid>
		<description><![CDATA[Check out the latest issue of the FFD Magazine: No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F01%2F09%2Fnew-ffd-issue%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F01%2F09%2Fnew-ffd-issue%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Check out the latest issue of the FFD Magazine:</p>
<p><a href="http://ffdmag-en.software.alfa.javatech.com.pl/download-1-2010"><img alt="FFD January Issue" src="http://ffdmag-en.software.alfa.javatech.com.pl/system/files/files/222/original/january.jpg?1262967953" title="FFD January Issue" class="alignleft" width="351" height="137" /></a></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.designfission.com/blog/2010/01/09/new-ffd-issue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>stop all sounds in Flash AS3</title>
		<link>http://www.designfission.com/blog/2010/01/05/stop-all-sounds-in-flash-as3/</link>
		<comments>http://www.designfission.com/blog/2010/01/05/stop-all-sounds-in-flash-as3/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 12:20:17 +0000</pubDate>
		<dc:creator>Edwin</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[sound]]></category>

		<guid isPermaLink="false">http://designfission.com/blog/2010/01/05/stop-all-sounds-in-flash-as3/</guid>
		<description><![CDATA[You can call it the global mute as well. What this line of code does is actually just turning down the entire flash&#8217;s volume down to 0. This is great for websites or games alike when a &#8220;Sound Off&#8221; or &#8220;Mute&#8221; feature is needed. SoundMixer.soundTransform = new SoundTransform(0); Related PostsMaster Volume Control in AS3.0 Full [...]

<h2>Related Posts</h2><a href='http://www.designfission.com/blog/2010/02/12/master-volume-control-in-as3-0/' rel='bookmark' title='Permanent Link: Master Volume Control in AS3.0'>Master Volume Control in AS3.0</a>
<a href='http://www.designfission.com/blog/2007/08/10/full-browserfull-screen-flash/' rel='bookmark' title='Permanent Link: Full Browser/Full Screen Flash'>Full Browser/Full Screen Flash</a>
<a href='http://www.designfission.com/blog/2007/10/14/opening-a-thickbox-iframe-from-flash/' rel='bookmark' title='Permanent Link: Opening a ThickBox iframe from Flash'>Opening a ThickBox iframe from Flash</a>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F01%2F05%2Fstop-all-sounds-in-flash-as3%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F01%2F05%2Fstop-all-sounds-in-flash-as3%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>You can call it the global mute as well. What this line of code does is actually just turning down the entire flash&#8217;s volume down to 0. This is great for websites or games alike when a &#8220;Sound Off&#8221; or &#8220;Mute&#8221; feature is needed.</p>
<pre class="brush: as3;">SoundMixer.soundTransform = new SoundTransform(0);</pre>


<h2>Related Posts</h2><a href='http://www.designfission.com/blog/2010/02/12/master-volume-control-in-as3-0/' rel='bookmark' title='Permanent Link: Master Volume Control in AS3.0'>Master Volume Control in AS3.0</a>
<a href='http://www.designfission.com/blog/2007/08/10/full-browserfull-screen-flash/' rel='bookmark' title='Permanent Link: Full Browser/Full Screen Flash'>Full Browser/Full Screen Flash</a>
<a href='http://www.designfission.com/blog/2007/10/14/opening-a-thickbox-iframe-from-flash/' rel='bookmark' title='Permanent Link: Opening a ThickBox iframe from Flash'>Opening a ThickBox iframe from Flash</a>
]]></content:encoded>
			<wfw:commentRss>http://www.designfission.com/blog/2010/01/05/stop-all-sounds-in-flash-as3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3 Fur/Hair Generator</title>
		<link>http://www.designfission.com/blog/2010/01/05/as3-furhair-generator/</link>
		<comments>http://www.designfission.com/blog/2010/01/05/as3-furhair-generator/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 03:17:21 +0000</pubDate>
		<dc:creator>Edwin</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[fur]]></category>
		<category><![CDATA[generator]]></category>
		<category><![CDATA[hair]]></category>

		<guid isPermaLink="false">http://designfission.com/blog/2010/01/05/as3-furhair-generator/</guid>
		<description><![CDATA[Stumbled upon this great flasher&#8217;s blog recently while trying to research for something I want to do: http://en.nicoptere.net/?p=574 The speed and quality of the fur generator is, I believe, the best out there right now. Awesome stuff. Other generators: http://blog.inspirit.ru/?p=131 http://projects.stroep.nl/fur/ Related PostsFor dynTween users

<h2>Related Posts</h2><a href='http://www.designfission.com/blog/2007/09/04/for-dyntween-users/' rel='bookmark' title='Permanent Link: For dynTween users'>For dynTween users</a>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F01%2F05%2Fas3-furhair-generator%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F01%2F05%2Fas3-furhair-generator%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Stumbled upon this great flasher&#8217;s blog recently while trying to research for something I want to do:</p>
<p>http://en.nicoptere.net/?p=574</p>
<p>The speed and quality of the fur generator is, I believe, the best out there right now. </p>
<p>Awesome stuff.</p>
<p>Other generators:</p>
<p>http://blog.inspirit.ru/?p=131</p>
<p>http://projects.stroep.nl/fur/</p>


<h2>Related Posts</h2><a href='http://www.designfission.com/blog/2007/09/04/for-dyntween-users/' rel='bookmark' title='Permanent Link: For dynTween users'>For dynTween users</a>
]]></content:encoded>
			<wfw:commentRss>http://www.designfission.com/blog/2010/01/05/as3-furhair-generator/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>AS3: remove All Children in a DisplayObject</title>
		<link>http://www.designfission.com/blog/2010/01/05/as3-remove-all-movieclips-and-sprites-in-a-displayobject/</link>
		<comments>http://www.designfission.com/blog/2010/01/05/as3-remove-all-movieclips-and-sprites-in-a-displayobject/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 19:00:57 +0000</pubDate>
		<dc:creator>Edwin</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[function]]></category>

		<guid isPermaLink="false">http://designfission.com/blog/2010/01/05/as3-remove-all-movieclips-and-sprites-in-a-displayobject/</guid>
		<description><![CDATA[function removeChildrenOf(mc:MovieClip):void{ if(mc_mc.numChildren!=0){ var k:int = mc.numChildren; while( k -- ) { mc.removeChildAt( k ); } } } Related PostsActionscript 3.0 Basics: The Moving Ball Master Volume Control in AS3.0 First step into AS3.0

<h2>Related Posts</h2><a href='http://www.designfission.com/blog/2007/09/16/actionscript-30-basics-the-moving-ball/' rel='bookmark' title='Permanent Link: Actionscript 3.0 Basics: The Moving Ball'>Actionscript 3.0 Basics: The Moving Ball</a>
<a href='http://www.designfission.com/blog/2010/02/12/master-volume-control-in-as3-0/' rel='bookmark' title='Permanent Link: Master Volume Control in AS3.0'>Master Volume Control in AS3.0</a>
<a href='http://www.designfission.com/blog/2007/09/16/first-step-into-as30/' rel='bookmark' title='Permanent Link: First step into AS3.0'>First step into AS3.0</a>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F01%2F05%2Fas3-remove-all-movieclips-and-sprites-in-a-displayobject%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.designfission.com%2Fblog%2F2010%2F01%2F05%2Fas3-remove-all-movieclips-and-sprites-in-a-displayobject%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<pre class="brush: as3;">
function removeChildrenOf(mc:MovieClip):void{
	if(mc_mc.numChildren!=0){
		var k:int = mc.numChildren;
		while( k -- )
		{
			mc.removeChildAt( k );
		}
	}
}
</pre>


<h2>Related Posts</h2><a href='http://www.designfission.com/blog/2007/09/16/actionscript-30-basics-the-moving-ball/' rel='bookmark' title='Permanent Link: Actionscript 3.0 Basics: The Moving Ball'>Actionscript 3.0 Basics: The Moving Ball</a>
<a href='http://www.designfission.com/blog/2010/02/12/master-volume-control-in-as3-0/' rel='bookmark' title='Permanent Link: Master Volume Control in AS3.0'>Master Volume Control in AS3.0</a>
<a href='http://www.designfission.com/blog/2007/09/16/first-step-into-as30/' rel='bookmark' title='Permanent Link: First step into AS3.0'>First step into AS3.0</a>
]]></content:encoded>
			<wfw:commentRss>http://www.designfission.com/blog/2010/01/05/as3-remove-all-movieclips-and-sprites-in-a-displayobject/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
