<?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>Tony Fendall &#187; Flex</title>
	<atom:link href="http://blog.tonyfendall.com/category/flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tonyfendall.com</link>
	<description>Welcome to my home on the web</description>
	<lastBuildDate>Sat, 14 Jan 2012 08:51:08 +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>Animating ProgressBar Skin in Flex</title>
		<link>http://blog.tonyfendall.com/2010/05/animating-progressbar-skin-in-flex/</link>
		<comments>http://blog.tonyfendall.com/2010/05/animating-progressbar-skin-in-flex/#comments</comments>
		<pubDate>Wed, 12 May 2010 07:54:01 +0000</pubDate>
		<dc:creator>Tony Fendall</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Animation]]></category>
		<category><![CDATA[Degrafa]]></category>
		<category><![CDATA[ProgressBar]]></category>

		<guid isPermaLink="false">http://blog.tonyfendall.com/?p=85</guid>
		<description><![CDATA[When I was in university (college) I was told a story about a large office building which had notoriously slow elevators.&#160; People would often spend several minutes waiting for the elevator to arrive at their floor and the occupants of the building complained about the problem often.
In an effort remedy the problem the owners of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.tonyfendall.com/2010/05/animating-progressbar-skin-in-flex"><img style="border-right-width: 0px; margin: 0px 10px 20px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Stop Watch" border="0" alt="Stop Watch" align="left" src="http://blog.tonyfendall.com/wp-content/uploads/timemanagement1.jpg" width="173" height="206" /></a>When I was in university (college) I was told a story about a large office building which had notoriously slow elevators.&#160; People would often spend several minutes waiting for the elevator to arrive at their floor and the occupants of the building complained about the problem often.</p>
<p>In an effort remedy the problem the owners of the building hired an engineer to come in and recommend ways to speed up the elevator service.&#160; The engineer reviewed the existing elevator system and all compatible upgrade options.&#160; Eventually the engineer came back with his recommendation:</p>
<p>The most cost effective way to improve the elevator service was to <strong>cover the elevator doors with mirrors</strong>.</p>
<p> <span id="more-85"></span> </p>
<p>The idea was unconventional to say the least, but it was so much cheaper than replacing the existing elevators that the building owners decided to try it.&#160; The employees did not realize that no further modifications had been made, and everyone agreed that the new ‘upgraded’ elevators were much faster than the old ones.</p>
<p>The moral of the story is that sometimes it’s easier to simply distract the user while they are waiting than speed up the thing they are waiting for.&#160; In the elevator story the people were distracted by having something to look at while they were waiting (themselves!) and this was enough to make the wait not feel as long.&#160; This story has always stuck with me and I am always on the look out for places where I can use this principle within my applications.</p>
<p>With this goal in mind I created an animating progress bar skin.&#160; The progress bar fills up at the same speed as any other, but as it does so the texture occasionally slides from left to right. This gives the impression that the bar is moving faster than it is and the whole wait feels much more positive <img src='http://blog.tonyfendall.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Check out the example below to see the principle in action.&#160; The top progress bar has a regular skin applied and moves painfully slowly.&#160; The bottom progress bar moves at the same speed but has an animating skin applied.&#160; It’s easy to see that it feels like things are progressing much faster.</p>
<p align="center"> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="Progress" width="300" height="100" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"><param name="movie" value="http://examples.tonyfendall.com/progressbarskin/Main.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#FFFFFF" /><param name="allowScriptAccess" value="sameDomain" /><embed src="http://examples.tonyfendall.com/progressbarskin/Main.swf" quality="high" bgcolor="#FFFFFF" width="300" height="100" name="Progress" align="middle" play="true" loop="false" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"></embed></object> </p>
<p><a href="http://examples.tonyfendall.com/progressbarskin/srcview/">The full source code is available here</a>.&#160; Feel free to take it and use it in any way which us useful to you.&#160; This skin has been built using <a href="http://www.degrafa.org/">Degrafa</a> so you can easily change the colour scheme and use it in other applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tonyfendall.com/2010/05/animating-progressbar-skin-in-flex/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Using Vector Paths with Degrafa</title>
		<link>http://blog.tonyfendall.com/2010/05/using-vector-paths-with-degrafa/</link>
		<comments>http://blog.tonyfendall.com/2010/05/using-vector-paths-with-degrafa/#comments</comments>
		<pubDate>Thu, 06 May 2010 08:33:44 +0000</pubDate>
		<dc:creator>Tony Fendall</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Degrafa]]></category>
		<category><![CDATA[Paths]]></category>
		<category><![CDATA[Vector]]></category>

		<guid isPermaLink="false">http://blog.tonyfendall.com/?p=78</guid>
		<description><![CDATA[ In the last few weeks I have been lucky enough to work alongside Greg Dove. Greg is one of the core contributors to the Degrafa framework, and it’s been a good chance for me to look into Degrafa more and learn what can be done with it.
The below example is something I created while [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.tonyfendall.com/2010/05/using-vector-paths-with-degrafa"><img style="border-right-width: 0px; margin: 0px 10px 20px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="raindrop2" border="0" alt="raindrop2" align="left" src="http://blog.tonyfendall.com/wp-content/uploads/raindrop2.jpg" width="173" height="206" /></a> In the last few weeks I have been lucky enough to work alongside <a href="http://greg-dove.com/">Greg Dove.</a> Greg is one of the core contributors to the <a href="http://www.degrafa.org/">Degrafa framework</a>, and it’s been a good chance for me to look into Degrafa more and learn what can be done with it.</p>
<p>The below example is something I created while playing with Degrafa Paths (using my movable components library again).&#160; Paths were a huge revelation for me because they allow you to create skins (buttons etc) with arbitrarily complex shapes.&#160; Now able to create speech bubbles and starbursts without having to embed a PNG asset.&#160; That’s really cool <img src='http://blog.tonyfendall.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p> <span id="more-78"></span> </p>
<p><strong>Try it Out:</strong></p>
<p>    	<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="Movable" width="100%" height="500" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"><param name="movie" value="http://examples.tonyfendall.com/teardrop/Main.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#FFFFFF" /><param name="allowScriptAccess" value="sameDomain" /><embed src="http://examples.tonyfendall.com/teardrop/Main.swf" quality="high" bgcolor="#FFFFFF" width="100%" height="500" name="Movable" align="middle" play="true" loop="false" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"></embed></object>  </p>
<p><a href="http://examples.tonyfendall.com/teardrop/srcview/">The full source code is available here</a>.&#160; Feel free to take it and use it in any way which us useful to you.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tonyfendall.com/2010/05/using-vector-paths-with-degrafa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dynamic UI Components (with source)</title>
		<link>http://blog.tonyfendall.com/2010/02/dynamic-ui-components/</link>
		<comments>http://blog.tonyfendall.com/2010/02/dynamic-ui-components/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 04:16:16 +0000</pubDate>
		<dc:creator>Tony Fendall</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Dynamic]]></category>
		<category><![CDATA[Example]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://blog.tonyfendall.com/?p=36</guid>
		<description><![CDATA[ Back in February 2008 I wrote an application called PostACard which ended up winning the 360&#124;Flex API Contest.&#160; I’m really proud of what I was able to create (less than 20 hours total development time) and I have always wanted to go back to it and see if I can extend it further.
Recently I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.tonyfendall.com/2010/02/dynamic-ui-components/"><img style="border-right-width: 0px; margin: 0px 10px 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="wwf" border="0" alt="wwf" align="left" src="http://blog.tonyfendall.com/wp-content/uploads/wwf_thumb.jpg" width="173" height="206" /></a> Back in February 2008 I wrote an application called <a href="http://www.munkiihouse.com/?page_id=81">PostACard</a> which ended up winning the 360|Flex API Contest.&#160; I’m really proud of what I was able to create (less than 20 hours total development time) and I have always wanted to go back to it and see if I can extend it further.</p>
<p>Recently I have been playing around with the source code some more and in particular have been trying to see if I could reuse the movable component libraries I wrote.&#160; As part of this I have tidied the code up a bit and have extracted it from the rest of the application.&#160; Check out the demo below.</p>
<p>  <span id="more-36"></span>
<p><strong>How it Works:</strong>     <br />The movable component framework is based on the MovableCanvas class.&#160; This class can contain movable components and is responsible for managing selections and copy/paste etc.&#160; Into the MovableCanvas we can place any component we wish as long as it extends the class MovableComponent.&#160; In the example below the image components are MovableComponents which contain an Image.</p>
<p><strong>Try it Out:</strong></p>
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="Movable" width="100%" height="500" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"><param name="movie" value="http://examples.tonyfendall.com/movable/Main.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#FFFFFF" /><param name="allowScriptAccess" value="sameDomain" /><embed src="http://examples.tonyfendall.com/movable/Main.swf" quality="high" bgcolor="#FFFFFF" width="100%" height="500" name="Movable" align="middle" play="true" loop="false" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"></embed></object></p>
<p><a href="http://examples.tonyfendall.com/movable/srcview">The full source code is available here</a>. Feel free to take it and use it in any way which us useful to you.</p>
<p><strong>Things to Look Out For:</strong> </p>
<ul>
<li>The MovableComponent class contains a public function called clone().&#160; You must override this function in order for the copy/paste functionality to work. </li>
<li>It is also possible to force MovableComponents to maintain their aspect ratio using the maintainAspectRation property. </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.tonyfendall.com/2010/02/dynamic-ui-components/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accurate Car Simulation in Flex</title>
		<link>http://blog.tonyfendall.com/2010/02/accurate-car-simulation-in-flex/</link>
		<comments>http://blog.tonyfendall.com/2010/02/accurate-car-simulation-in-flex/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 11:20:13 +0000</pubDate>
		<dc:creator>Tony Fendall</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Car]]></category>
		<category><![CDATA[Driving]]></category>
		<category><![CDATA[Example]]></category>
		<category><![CDATA[Simulation]]></category>

		<guid isPermaLink="false">http://blog.tonyfendall.com/?p=31</guid>
		<description><![CDATA[ The demo below came from a technical challenge I set myself a few weekends ago.&#160; I often like to set myself small challenges like this… I guess it’s kind of like doing a cross word puzzle.
The challenge this week was to accurately simulate the movements of a car in 2D.&#160; Most people don’t realize [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.tonyfendall.com/2010/02/accurate-car-simulation-in-flex/"><img style="border-right-width: 0px; margin: 0px 10px 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="car_top2" border="0" alt="car_top2" align="left" src="http://blog.tonyfendall.com/wp-content/uploads/car_top2_thumb.jpg" width="173" height="206" /></a> The demo below came from a technical challenge I set myself a few weekends ago.&#160; I often like to set myself small challenges like this… I guess it’s kind of like doing a cross word puzzle.</p>
<p>The challenge this week was to accurately simulate the movements of a car in 2D.&#160; Most people don’t realize this, but when a car turns it is rotating about a point outside itself, and that point is perpendicular to the wheels.&#160; It’s a little hard to explain, but if you check out the demo below then it all should become clear.</p>
<p> <span id="more-31"></span> </p>
<p>This app was challenging mainly due to the geometry involved, and I definitely had to scratch my head for a while before I remembered how to rotate one point around another.&#160; I’m pretty happy with how it turned out however.&#160; It was definitely an afternoon well spent.</p>
<p align="left"><strong>Try it Out:</strong></p>
<p>   	<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="Driving" width="100%" height="300" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"><param name="movie" value="http://examples.tonyfendall.com/driving/Main.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#FFFFFF" /><param name="allowScriptAccess" value="sameDomain" /><embed src="http://examples.tonyfendall.com/driving/Main.swf" quality="high" bgcolor="#FFFFFF" width="100%" height="300" name="Driving" align="middle" play="true" loop="false" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"></embed></object> </p>
<p><a href="http://examples.tonyfendall.com/driving/srcview/">The full source code is available here</a>. Feel free to take it and use it in any way which us useful to you.</p>
<p align="left">A few people have me why I didn’t allow you to control the car using the arrow keys.&#160; The answer is simply that this demo is more impressive when you can appreciate the analogue nature of car steering.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tonyfendall.com/2010/02/accurate-car-simulation-in-flex/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to Draw in Flex</title>
		<link>http://blog.tonyfendall.com/2010/02/how-to-draw-in-flex/</link>
		<comments>http://blog.tonyfendall.com/2010/02/how-to-draw-in-flex/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 04:27:17 +0000</pubDate>
		<dc:creator>Tony Fendall</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Component]]></category>
		<category><![CDATA[Drawing]]></category>
		<category><![CDATA[Example]]></category>

		<guid isPermaLink="false">http://blog.tonyfendall.com/?p=20</guid>
		<description><![CDATA[ Eye candy is an important, if often over looked, part of any Flex application.&#160; Unfortunately for me, I am much more of a developer than a designer and this has often left me with the short end of the eye candy stick.
The strength of being a developer however is in the custom functionality we [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.tonyfendall.com/2010/02/how-to-draw-in-flex/"><img style="border-right-width: 0px; margin: 0px 10px 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="pencil" border="0" alt="pencil" align="left" src="http://blog.tonyfendall.com/wp-content/uploads/pencil_thumb.png" width="173" height="206" /></a> Eye candy is an important, if often over looked, part of any Flex application.&#160; Unfortunately for me, I am much more of a developer than a designer and this has often left me with the short end of the eye candy stick.</p>
<p>The strength of being a developer however is in the custom functionality we can add.&#160; Recently I have put together a DrawableOverlay Flex component which can be used to allow the user to annotate/draw on any part of the application.</p>
<p>    <span id="more-20"></span>
<p>The example application below shows how this component works in practice.&#160; The DrawableOverlay component can be placed over any other components in the application (in this case a Image and a Container) and the user is then able to annotate anywhere within the DrawableOverlay area.</p>
<p align="left"><strong>Try it Out:</strong></p>
<p>   	<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="Drawing" width="100%" height="300" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"><param name="movie" value="http://examples.tonyfendall.com/drawing_v1/Main.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#FFFFFF" /><param name="allowScriptAccess" value="sameDomain" /><embed src="http://examples.tonyfendall.com/drawing_v1/Main.swf" quality="high" bgcolor="#FFFFFF" width="100%" height="300" name="${application}" align="middle" play="true" loop="false" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"></embed></object> </p>
<p><a href="http://examples.tonyfendall.com/drawing_v1/srcview/">The full source code is available here</a>.&#160; Feel free to take it and use it in any way which us useful to you.&#160; Come back soon to see me extend this simple example to show off some of the things which are possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tonyfendall.com/2010/02/how-to-draw-in-flex/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
