<?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>Danny-T.co.uk &#187; Flex</title>
	<atom:link href="http://danny-t.co.uk/index.php/category/flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://danny-t.co.uk</link>
	<description>Web apps fanatic, ramblings on dev for web, mobile and other geeky stuff</description>
	<lastBuildDate>Sat, 04 Feb 2012 09:59:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>New Flex/best practices blog</title>
		<link>http://danny-t.co.uk/index.php/2011/04/25/new-flexbest-practices-blog/</link>
		<comments>http://danny-t.co.uk/index.php/2011/04/25/new-flexbest-practices-blog/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 19:11:13 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=416</guid>
		<description><![CDATA[Moov2 aficionado Peter Keating has finally started blogging, so far posts have been a very thorough introduction to unit testing, test-driven development and project best practices for Flex. Definitely worth a look so check it out over at peterkeating.co.uk.]]></description>
			<content:encoded><![CDATA[<p><a href="http://moov2.com">Moov2 </a>aficionado Peter Keating has finally started blogging, so far posts have been a very thorough introduction to unit testing, test-driven development and project best practices for Flex. Definitely worth a look so check it out over at <a href="http://peterkeating.co.uk">peterkeating.co.uk</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2011/04/25/new-flexbest-practices-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Come work with me!</title>
		<link>http://danny-t.co.uk/index.php/2011/02/16/come-work-with-me/</link>
		<comments>http://danny-t.co.uk/index.php/2011/02/16/come-work-with-me/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 12:44:16 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=406</guid>
		<description><![CDATA[At Moov2 we have a lot of really exciting projects on the go and in the pipeline. We&#8217;re expanding our skill-sets and opening up more and more new opportunities. Coupled with one of our developers taking sabbatical we have a couple of new positions available and are looking for some hyper-enthusiastic devs to join our [...]]]></description>
			<content:encoded><![CDATA[<p>At <a href="http://moov2.com">Moov2</a> we have a lot of really exciting projects on the go and in the pipeline. We&#8217;re expanding our skill-sets and opening up more and more new opportunities. Coupled with one of our developers taking sabbatical we have a <a href="http://moov2.com/blog/2011/02/come-join-us/">couple of new positions available</a> and are looking for some hyper-enthusiastic devs to join our team.</p>
<p>We love playing with new technology and strive to stay on top of the latest and greatest. We also regularly attend industry events and user groups such as <a href="http://www.flashonthebeach.com/">FOTB</a>, <a href="http://www.droidcon.co.uk/">Droidcon</a>, <a href="http://www.360flex.com/">360Flex</a>, <a href="www.developerdeveloperdeveloper.com">DDD</a>, <a href="http://www.nxtgenug.net/">NxtGen</a> and <a href="http://www.lfpug.com/">LFPUG</a> and always looking for the next great event. </p>
<p>You&#8217;ll get to work with the likes of <a href="http://twitter.com/#!/dannyt">me</a>, <a href="http://twitter.com/#!/andreablack">@andreablack</a>, <a href="http://twitter.com/#!/peterkeating">@peterkeating</a> and <a href="http://twitter.com/#!/colinl">@colinl</a> along with occasional input from great talents such as <a href="http://twitter.com/#!/nwebb">@nwebb</a>, <a href="http://twitter.com/#!/getrichhull">@getrichhull</a>, <a href="http://twitter.com/#!/amw7">@amw7</a> and others to help us build world class RIAs. </p>
<p>We get all sorts of interesting projects ranging from sales tools for one of the worlds largest toy manufacturers to <a href="http://www.abrsm.org/students/speedshifter">really cool audio slow-downers</a> to help people learn to play music. We like to consider ourselves &#8216;platform agnostic&#8217; which means we don&#8217;t get caught up in the &#8220;my tech is better than your tech&#8221; arguments. We focus on learning as much as possible and using the best tool for the job. This is great fun for us, we don&#8217;t get stuck using the same old technology and means our clients get a better result from experienced and unbiased opinion.</p>
<p>If you&#8217;re a developer with good OOP experience, familiarity with Flex and/or .Net and a genuine passion for building amazing user experiences and writing great code why not <a href="http://moov2.com/blog/2011/02/come-join-us/">check out our openings and drop us your CV/portfolio</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2011/02/16/come-work-with-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash Player Mousewheel event not firing</title>
		<link>http://danny-t.co.uk/index.php/2011/01/27/flash-player-mousewheel-event-not-firing/</link>
		<comments>http://danny-t.co.uk/index.php/2011/01/27/flash-player-mousewheel-event-not-firing/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 20:28:21 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=306</guid>
		<description><![CDATA[I&#8217;m not sure if this is an issue with a recent Flash Player, Browser updates, OS, Hardware or whatever but in a recent application I noticed really poor responsiveness on mousewheel scrolling. This was also picked up by the client so it was time to sort it. These sort of issues are always a real [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not sure if this is an issue with a recent Flash Player, Browser updates, OS, Hardware or whatever but in a recent application I noticed really poor responsiveness on mousewheel scrolling. This was also picked up by the client so it was time to sort it. </p>
<p>These sort of issues are always a real pain as it&#8217;s a problem not expected, not budgeted for and almost certainly going to eat a lot of time. Oddly I couldn&#8217;t find much else out there on the same issue. Fortunately one of the few resources I did find in this case someone had already done the hard work for us!</p>
<p><a href="http://labs.byhook.com/2010/04/09/flash-mouse-wheel-support/">Jake over at byHook</a> posted some extremely handy classes which use javascript injection to pickup the js mousewheel events in the browser which are much more reliable. It then uses the info from these events to fire off a new mouseevent in Flash.</p>
<p>It was built for use in Flash projects but works seamlessly in Flex also:</p>
<p>Import the classes and add the following to the APPLICATION_COMPLETE event:</p>
<p><code>private function onAppComplete(e:FlexEvent):void<br />
{<br />
	MouseWheelEnabler.init(this.stage);<br />
}</code></p>
<p>And that&#8217;s all, much more consistent and responsive scrolling! It did still feel a little slow for my taste so I added the following <a href="http://forums.adobe.com/message/2871015#2806424">bumpDelta method</a> to the system manager to speed things up:</p>
<p><code>private function onAppComplete(e:FlexEvent):void<br />
{<br />
	MouseWheelEnabler.init(this.stage);<br />
	systemManager.addEventListener("mouseWheel", bumpDelta, true);<br />
}<br />
public function bumpDelta(event:MouseEvent):void<br />
{<br />
	event.delta *= 2;<br />
}</code></p>
<p>Like I said, couldn&#8217;t find much when searching on this issue hence my re-posting of Jake&#8217;s solution. I was specifically looking for Flex so thought this might help someone else in the future but all props definitely due to byHook for the code.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2011/01/27/flash-player-mousewheel-event-not-firing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You&#8217;re doing handlers wrong</title>
		<link>http://danny-t.co.uk/index.php/2010/12/06/youre-doing-handlers-wrong/</link>
		<comments>http://danny-t.co.uk/index.php/2010/12/06/youre-doing-handlers-wrong/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 11:36:25 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Interface Design]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=294</guid>
		<description><![CDATA[Okay so it&#8217;s a link bait, sensationalist title, but that fact I&#8217;ve recognised that fact makes it okay yeah? Anyway like I said you&#8217;re doing handlers wrong&#8230; or rather, to stop with the hype-generating, FUD-like statements; If you&#8217;re waiting for RPC/Async handlers to return in order to update your application&#8217;s interface then allow me to [...]]]></description>
			<content:encoded><![CDATA[<p>Okay so it&#8217;s a link bait, sensationalist title, but that fact I&#8217;ve recognised that fact makes it okay yeah? Anyway like I said you&#8217;re doing handlers wrong&#8230; or rather, to stop with the hype-generating, FUD-like statements; If you&#8217;re waiting for RPC/Async handlers to return in order to update your application&#8217;s interface then allow me to propose a new approach:</p>
<blockquote><p>Always assume the call you&#8217;re making will work.</p></blockquote>
<p>Some context for the above, I recently got sick of my iPhone and decided to give Android a spin, side-stepping the obvious discussion here, one of the things that has irked me about the Android experience is that it just doesn&#8217;t feel as responsive as the iPhone for certain applications, specifically email. So I started to compare the two and realised that the iPhone reacts to my interactions immediately whereas Android seems to wait for approval from the server. This eye-opening discovery led to me imposing a new standard here at <a href="http://moov2.com">Moov2</a>:</p>
<blockquote><p>Every user interaction must have an immediate and obvious reaction.</p></blockquote>
<p>Proud and smug feelings of wearing my user experience hat were soon interupted when challenged to explain wtf I actually meant by this. So, for example, deleting an email from a list of viewed email messages. When I hit delete I expect that message to be removed from the list and if that happens as soon as I press the delete button, I&#8217;m a happy chap. Conversely, if I have to wait, even a couple of seconds, I may think I missed and try hitting it again&#8230; and again&#8230; etc. So developers, quite simply, as soon as that delete button is hit, remove the message from the list and THEN send your call informing the server to do it&#8217;s part. This approach can be applied to pretty much any application development that involves a rich user interface, Flash, Flex, Silverlight, AJAX, Android, iPhone, native desktop apps and whatever.</p>
<h3>But what if something goes wrong?</h3>
<p>Of course, just throwing the message away willy-nilly is reckless, there&#8217;s a whole host of things that could prevent that message from being deleted. The user might be offline, the email list might not be up to date or there may just be some other bug elsewhere making the delete email process just plain not possible at the moment. In this case, sheepishly, politely and unobtrusively, let your user know the fact and pop the email back where it came from. This will obviously be a nuissance to the user, but how often does this really happen in comparisson to how often it works? Very rarely, and it&#8217;s no less annoying for the user than having to sit there waiting with no response only to find out the action failed.</p>
<h3>What if I NEED the response in order to update the UI?</h3>
<p>So deleting is a fairly convenient example because we&#8217;re taking away from an already viewable interface, what about if we&#8217;re adding to our interface based on the response from our call? For example displaying the list of emails in the first place. Well, for this I suggest you present all of the interface elements that you know are going to be available and just provide some indication that something else is going on to reassure the user that their input has been acknowledged. So when the user chooses to view their inbox, immediately react and change the view, present them the &#8216;Inbox&#8217; title, show them any user controls they might be able to interact with and display the space those messages are going to load into with some form of preloader/spinner and note indicating their messages are being retrieved.</p>
<p>So take a minute and review your result handlers to see how much UI stuff is being done there. Could it be moved to before the call was made? This sometimes means you need to think about how to best back-track when things go wrong but for the 95% of the time when you just get the result you&#8217;d expect you&#8217;ll deliver a MUCH more responsive feeling interface that your users will thank you for.</p>
<p>By the way, if you&#8217;d like to actually see some code demonstrating this concept tweet the following message to Pete who has prepared a very clean implementation of this for a Flex application we&#8217;re currently working on: &#8220;<a href="http://twitter.com/?status=Hey @peterkeating, codez pls http://bit.ly/f8HOyp">Hey @peterkeating, codez pls http://bit.ly/f8HOyp</a>. I&#8217;m sure he&#8217;ll oblige with a sample soon enough.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2010/12/06/youre-doing-handlers-wrong/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fla to FXG to Flex 4 Spark Skins</title>
		<link>http://danny-t.co.uk/index.php/2010/10/27/fla-to-fxg-to-flex-4-spark-skins/</link>
		<comments>http://danny-t.co.uk/index.php/2010/10/27/fla-to-fxg-to-flex-4-spark-skins/#comments</comments>
		<pubDate>Wed, 27 Oct 2010 22:02:20 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=268</guid>
		<description><![CDATA[I&#8217;ve been taking a look at Flex 4 skinning recently, a little late to the game but as the rest of the team was getting familiar I decided it was my time to step up. My first impressions were not that great but after familiarising myself with it I started to see the benefits. One [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://danny-t.co.uk/wp-content/uploads/flatofxg.png"><img src="http://danny-t.co.uk/wp-content/uploads/flatofxg.png" alt="" title="flatofxg" width="298" height="283" class="alignright size-full wp-image-270" /></a>I&#8217;ve been taking a look at Flex 4 skinning recently, a little late to the game but as the rest of the team was getting familiar I decided it was my time to step up. My first impressions were not that great but after familiarising myself with it I started to see the benefits.</p>
<p>One fairly simple yet useful and perhaps not widely known discovery I made was how to go about getting assets designed in Flash into my Flex skin with just a bit of faffing about. I&#8217;d figured this wouldn&#8217;t be too high up on many people&#8217;s interest list with Catalyst weighing in as the main contender but <a href="http://twitter.com/probertson">Paul</a> showed some interest so if for no one else, I know it&#8217;s of interest for at least someone out there!</p>
<h3>Fla to Fxg to Spark</h3>
<p>Will try to keep this to the point and let the visuals do the talking.</p>
<p>We start off with a simple Spark Button and assign it a custom skin:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&lt;</span>?<span style="color: #0066CC;">xml</span> <span style="color: #0066CC;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;</span>s:Application xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span> 
			   xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span> 
			   xmlns:mx=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/mx&quot;</span> 
			   minWidth=<span style="color: #ff0000;">&quot;955&quot;</span> 
			   minHeight=<span style="color: #ff0000;">&quot;600&quot;</span><span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;</span>s:layout<span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:VerticalLayout gap=<span style="color: #ff0000;">&quot;20&quot;</span> 
			paddingLeft=<span style="color: #ff0000;">&quot;20&quot;</span>
			paddingTop=<span style="color: #ff0000;">&quot;20&quot;</span> <span style="color: #66cc66;">/&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>s:layout<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;</span>s:<span style="color: #0066CC;">Button</span> label=<span style="color: #ff0000;">&quot;My Button&quot;</span> 
			 skinClass=<span style="color: #ff0000;">&quot;skins.FlaFxgSkin&quot;</span> <span style="color: #66cc66;">/&gt;</span>
<span style="color: #66cc66;">&lt;/</span>s:Application<span style="color: #66cc66;">&gt;</span></pre></div></div>

<p>To create the skin simply File, New, MXML Skin and set the host component to be a Spark Button as so:</p>
<p><a href="http://danny-t.co.uk/wp-content/uploads/newFlexSkin.png"><img src="http://danny-t.co.uk/wp-content/uploads/newFlexSkin.png" alt="" title="newFlexSkin" width="525" height="504" class="alignnone size-full wp-image-279" /></a></p>
<p>With the generated skin we can actually remove everything down to the following which is just an empty button skin with a label:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&lt;</span>?<span style="color: #0066CC;">xml</span> <span style="color: #0066CC;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;</span>s:SparkSkin xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span> 
	     xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span> 
             xmlns:fb=<span style="color: #ff0000;">&quot;http://ns.adobe.com/flashbuilder/2009&quot;</span> 
	     minWidth=<span style="color: #ff0000;">&quot;21&quot;</span> 
	     minHeight=<span style="color: #ff0000;">&quot;21&quot;</span> 
	     alpha.<span style="color: #006600;">disabled</span>=<span style="color: #ff0000;">&quot;0.5&quot;</span><span style="color: #66cc66;">&gt;</span>
&nbsp;
    <span style="color: #66cc66;">&lt;</span>fx:Metadata<span style="color: #66cc66;">&gt;</span>
        <span style="color: #66cc66;">&#91;</span>HostComponent<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;spark.components.Button&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
    <span style="color: #66cc66;">&lt;/</span>fx:Metadata<span style="color: #66cc66;">&gt;</span>
&nbsp;
    <span style="color: #66cc66;">&lt;</span>s:states<span style="color: #66cc66;">&gt;</span>
        <span style="color: #66cc66;">&lt;</span>s:State <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;up&quot;</span> <span style="color: #66cc66;">/&gt;</span>
        <span style="color: #66cc66;">&lt;</span>s:State <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;over&quot;</span> <span style="color: #66cc66;">/&gt;</span>
        <span style="color: #66cc66;">&lt;</span>s:State <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;down&quot;</span> <span style="color: #66cc66;">/&gt;</span>
        <span style="color: #66cc66;">&lt;</span>s:State <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;disabled&quot;</span> <span style="color: #66cc66;">/&gt;</span>
    <span style="color: #66cc66;">&lt;/</span>s:states<span style="color: #66cc66;">&gt;</span>    
&nbsp;
    <span style="color: #66cc66;">&lt;</span>s:Label id=<span style="color: #ff0000;">&quot;labelDisplay&quot;</span>
             textAlign=<span style="color: #ff0000;">&quot;center&quot;</span>
             verticalAlign=<span style="color: #ff0000;">&quot;middle&quot;</span>
             maxDisplayedLines=<span style="color: #ff0000;">&quot;1&quot;</span>
             horizontalCenter=<span style="color: #ff0000;">&quot;0&quot;</span> verticalCenter=<span style="color: #ff0000;">&quot;1&quot;</span>
             <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #0066CC;">right</span>=<span style="color: #ff0000;">&quot;10&quot;</span> top=<span style="color: #ff0000;">&quot;2&quot;</span> bottom=<span style="color: #ff0000;">&quot;2&quot;</span><span style="color: #66cc66;">&gt;</span>
    <span style="color: #66cc66;">&lt;/</span>s:Label<span style="color: #66cc66;">&gt;</span>
&nbsp;
<span style="color: #66cc66;">&lt;/</span>s:SparkSkin<span style="color: #66cc66;">&gt;</span></pre></div></div>

<p>At this point we have a pretty dull skin and want to jazz it up a little with some Flash sexyness, I suggest you find your own but this is what I&#8217;ll be using to demonstrate:</p>
<p><a href="http://danny-t.co.uk/wp-content/uploads/flashsexyness.png"><img src="http://danny-t.co.uk/wp-content/uploads/flashsexyness-300x205.png" alt="" title="flashsexyness" width="300" height="205" class="alignnone size-medium wp-image-276" /></a></p>
<p>Once you have your masterpiece all you need do is File, Export, Export Image and choose the FXG file type. Point this file at your desktop or somewhere handy and you can open it in your text editor of choice.</p>
<p>What I noticed when I did this is that the FXG from Flash has near enough identical paths, fills, strokes, gradients etc as in spark (of course this is obviously by it&#8217;s very nature). The only thing that didn&#8217;t correlate was the spark namespace. If your shape is simple enough you can just go and manually add the s: by hand but if it isn&#8217;t then RegEx to the rescue. You&#8217;ll see I&#8217;ve used <del datetime="2010-10-27T19:30:37+00:00">Notepad++</del>* <a href="http://www.pnotepad.org/">Programmers Notepad</a> in the following screens to do a regex search and replace to insert the namespace we want.</p>
<p><strong>Regex</strong><br />
<code>find pattern - (&lt;|&lt;/)(\w)<br />
replace pattern - \1s:\2<br />
(you might need to change the replace to $1s:$2 depending on text editor)</code></p>
<p>Before:</p>
<p><a href="http://danny-t.co.uk/wp-content/uploads/regexBefore.jpg"><img src="http://danny-t.co.uk/wp-content/uploads/regexBefore.jpg" alt="" title="regexBefore" width="807" height="493" class="alignnone size-full wp-image-281" /></a></p>
<p>After:<br />
<a href="http://danny-t.co.uk/wp-content/uploads/regexAfter.jpg"><img src="http://danny-t.co.uk/wp-content/uploads/regexAfter.jpg" alt="" title="regexAfter" width="806" height="493" class="alignnone size-full wp-image-282" /></a></p>
<p>Then you have your fxg code needed for your skin, simply copy and paste all of the the <strong>&lt;s:Path&gt; elements</strong> into your skin just above the label:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&lt;</span>?<span style="color: #0066CC;">xml</span> <span style="color: #0066CC;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;</span>s:SparkSkin xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span> 
	     xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span> 
             xmlns:fb=<span style="color: #ff0000;">&quot;http://ns.adobe.com/flashbuilder/2009&quot;</span> 
	     minWidth=<span style="color: #ff0000;">&quot;21&quot;</span> 
	     minHeight=<span style="color: #ff0000;">&quot;21&quot;</span> 
	     alpha.<span style="color: #006600;">disabled</span>=<span style="color: #ff0000;">&quot;0.5&quot;</span><span style="color: #66cc66;">&gt;</span>
&nbsp;
    <span style="color: #66cc66;">&lt;</span>fx:Metadata<span style="color: #66cc66;">&gt;</span>
        <span style="color: #66cc66;">&#91;</span>HostComponent<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;spark.components.Button&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
    <span style="color: #66cc66;">&lt;/</span>fx:Metadata<span style="color: #66cc66;">&gt;</span>
&nbsp;
    <span style="color: #66cc66;">&lt;</span>s:states<span style="color: #66cc66;">&gt;</span>
        <span style="color: #66cc66;">&lt;</span>s:State <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;up&quot;</span> <span style="color: #66cc66;">/&gt;</span>
        <span style="color: #66cc66;">&lt;</span>s:State <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;over&quot;</span> <span style="color: #66cc66;">/&gt;</span>
        <span style="color: #66cc66;">&lt;</span>s:State <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;down&quot;</span> <span style="color: #66cc66;">/&gt;</span>
        <span style="color: #66cc66;">&lt;</span>s:State <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;disabled&quot;</span> <span style="color: #66cc66;">/&gt;</span>
    <span style="color: #66cc66;">&lt;/</span>s:states<span style="color: #66cc66;">&gt;</span>    
&nbsp;
	<span style="color: #66cc66;">&lt;</span>s:Path <span style="color: #0066CC;">data</span>=<span style="color: #ff0000;">&quot;M59.2 25.8 59.55 43.35 82.25 50.3 67.7 58.05 85.35 79.95 58.45 71.8 55.5 99.75 42.2 75 20.3 92.65 28.45 65.75 0.5 62.8 25.25 49.5 7.6 27.65 34.5 35.75 37.45 7.85 50.75 32.55 59.2 25.8&quot;</span><span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:fill<span style="color: #66cc66;">&gt;</span>
			<span style="color: #66cc66;">&lt;</span>s:SolidColor <span style="color: #0066CC;">color</span>=<span style="color: #ff0000;">&quot;#009900&quot;</span><span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;/</span>s:fill<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>s:Path<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;</span>s:Path <span style="color: #0066CC;">data</span>=<span style="color: #ff0000;">&quot;M82.25 50.3 59.55 43.35 59.2 25.8 58.9 11.05 89.5 0.5 109 26.25 90.5 52.8 82.25 50.3&quot;</span><span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:fill<span style="color: #66cc66;">&gt;</span>
			<span style="color: #66cc66;">&lt;</span>s:LinearGradient x=<span style="color: #ff0000;">&quot;58.9&quot;</span> y=<span style="color: #ff0000;">&quot;26.65&quot;</span> scaleX=<span style="color: #ff0000;">&quot;50.1&quot;</span><span style="color: #66cc66;">&gt;</span>
				<span style="color: #66cc66;">&lt;</span>s:GradientEntry ratio=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #0066CC;">color</span>=<span style="color: #ff0000;">&quot;#414142&quot;</span><span style="color: #66cc66;">/&gt;</span>
				<span style="color: #66cc66;">&lt;</span>s:GradientEntry ratio=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #0066CC;">color</span>=<span style="color: #ff0000;">&quot;#686868&quot;</span><span style="color: #66cc66;">/&gt;</span>
			<span style="color: #66cc66;">&lt;/</span>s:LinearGradient<span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;/</span>s:fill<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>s:Path<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;</span>s:Path <span style="color: #0066CC;">data</span>=<span style="color: #ff0000;">&quot;M59.2 25.8 58.9 11.05 89.5 0.5 109 26.25 90.5 52.8 82.25 50.3 67.7 58.05 85.35 79.95 58.45 71.8 55.5 99.75 42.2 75 20.3 92.65 28.45 65.75 0.5 62.8 25.25 49.5 7.6 27.65 34.5 35.75 37.45 7.85 50.75 32.55 59.2 25.8M82.25 50.3 59.55 43.35 59.2 25.8&quot;</span><span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:stroke<span style="color: #66cc66;">&gt;</span>
			<span style="color: #66cc66;">&lt;</span>s:SolidColorStroke weight=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #0066CC;">color</span>=<span style="color: #ff0000;">&quot;#20343D&quot;</span><span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;/</span>s:stroke<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>s:Path<span style="color: #66cc66;">&gt;</span>
&nbsp;
    <span style="color: #66cc66;">&lt;</span>s:Label id=<span style="color: #ff0000;">&quot;labelDisplay&quot;</span>
             textAlign=<span style="color: #ff0000;">&quot;center&quot;</span>
             verticalAlign=<span style="color: #ff0000;">&quot;middle&quot;</span>
             maxDisplayedLines=<span style="color: #ff0000;">&quot;1&quot;</span>
             horizontalCenter=<span style="color: #ff0000;">&quot;0&quot;</span> verticalCenter=<span style="color: #ff0000;">&quot;1&quot;</span>
             <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #0066CC;">right</span>=<span style="color: #ff0000;">&quot;10&quot;</span> top=<span style="color: #ff0000;">&quot;2&quot;</span> bottom=<span style="color: #ff0000;">&quot;2&quot;</span><span style="color: #66cc66;">&gt;</span>
    <span style="color: #66cc66;">&lt;/</span>s:Label<span style="color: #66cc66;">&gt;</span>
&nbsp;
<span style="color: #66cc66;">&lt;/</span>s:SparkSkin<span style="color: #66cc66;">&gt;</span></pre></div></div>

<p>And you&#8217;re done! Okay you&#8217;ll obviously want to do more with it than that, you can tie this into your button states and also do clever dynamic stuff with the FXG once it&#8217;s in but for now I figured this is enough. It would be really nice if this could be done without all the copying and pasting and I think possibly a JSFL script could do alot of the work for us so if anyone wants to contribute that, I&#8217;d be most grateful. </p>
<p>I&#8217;m going to try to expand on this and demonstrate a bit more of what I&#8217;ve been discovering as I find the time and figure more interesting things out.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2010/10/27/fla-to-fxg-to-flex-4-spark-skins/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Flex Sliding Drawer Mask and Move Effect</title>
		<link>http://danny-t.co.uk/index.php/2010/05/02/flex-mask-and-move-effect/</link>
		<comments>http://danny-t.co.uk/index.php/2010/05/02/flex-mask-and-move-effect/#comments</comments>
		<pubDate>Sun, 02 May 2010 12:34:05 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=203</guid>
		<description><![CDATA[I&#8217;ve just been trying to create a simple Sliding Drawer effect in Flex 3 and came across a load of weird and wonderful glitches that made something which should take 20 minutes leave me banging my head against the table for a couple of hours. Here&#8217;s the end result: However, this is the sort of [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just been trying to create a simple Sliding Drawer effect in Flex 3 and came across a load of weird and wonderful glitches that made something which should take 20 minutes leave me banging my head against the table for a couple of hours.</p>
<p>Here&#8217;s the end result:<br />

<object width="335" height="180">
<param name="movie" value="/wp-content/uploads/StylingTest1.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<param name="allowScriptAccess" value="always"></param>
<embed type="application/x-shockwave-flash" width="335" height="180" src="/wp-content/uploads/StylingTest1.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
</p>
<p>However, this is the sort of behaviour that was giving me grief:<br />

<object width="335" height="180">
<param name="movie" value="/wp-content/uploads/StylingTestGlitchy.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<param name="allowScriptAccess" value="always"></param>
<embed type="application/x-shockwave-flash" width="335" height="180" src="/wp-content/uploads/StylingTestGlitchy.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
</p>
<p>Nice eh? The components disappear randomly, the mask doesn&#8217;t stay still, the label isn&#8217;t viewable on the rotated button and it&#8217;s generally a bit of a pig.</p>
<p>Here&#8217;s the few things I learned to eliminate this glitchy behavior:</p>
<ol>
<li>In order to rotate a button, you need to embed the font.</li>
<li>When you rotate a button the width property actually reports the height of the rotated button (which makes sense but is a bit odd at first), this also confuses any containers the button is in</li>
<li>A mask needs to have cacheAsBitmap=true</li>
<li>Sprite seems to be the best class to use for masks but you&#8217;ll need to add it to rawChildren when adding it to the displaylist as it isn&#8217;t a DisplayObject</li>
</ol>
<p>Most of this is demonstrated in the source for the above:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&lt;</span>?<span style="color: #0066CC;">xml</span> <span style="color: #0066CC;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;</span>mx:Application xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> 
	<span style="color: #0066CC;">backgroundColor</span>=<span style="color: #ff0000;">&quot;#ffffff&quot;</span>
	layout=<span style="color: #ff0000;">&quot;vertical&quot;</span> 
	creationComplete=<span style="color: #ff0000;">&quot;cc()&quot;</span>
	<span style="color: #66cc66;">&gt;</span>
&nbsp;
	<span style="color: #66cc66;">&lt;</span>mx:Style<span style="color: #66cc66;">&gt;</span>
		<span style="color: #808080; font-style: italic;">/* need to embed font to allow rotated buttons */</span>
		<span style="color: #66cc66;">@</span>font-face <span style="color: #66cc66;">&#123;</span>
		    src: local<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Arial&quot;</span><span style="color: #66cc66;">&#41;</span>;
		    fontFamily: ArialEmbedded;
		    fontWeight: normal;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #66cc66;">@</span>font-face <span style="color: #66cc66;">&#123;</span>
		    src: local<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Arial&quot;</span><span style="color: #66cc66;">&#41;</span>;
		    fontFamily: ArialEmbedded;
		    fontWeight: <span style="color: #0066CC;">bold</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">Button</span> <span style="color: #66cc66;">&#123;</span>
			font-family: ArialEmbedded;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&lt;/</span>mx:Style<span style="color: #66cc66;">&gt;</span>
&nbsp;
	<span style="color: #66cc66;">&lt;</span>mx:Script<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;!</span><span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> cc<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>: <span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">// create mask</span>
			<span style="color: #000000; font-weight: bold;">var</span> drawerMask : Sprite = <span style="color: #000000; font-weight: bold;">new</span>  Sprite<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			drawerMask.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xffffff<span style="color: #66cc66;">&#41;</span>;
			drawerMask.<span style="color: #006600;">graphics</span>.<span style="color: #006600;">drawRect</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, drawer.<span style="color: #0066CC;">width</span> + <span style="color: #cc66cc;">20</span>, <span style="color: #cc66cc;">300</span><span style="color: #66cc66;">&#41;</span>;
			drawerMask.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			drawerMask.<span style="color: #006600;">x</span> = tabs.<span style="color: #006600;">x</span>;
			<span style="color: #808080; font-style: italic;">// eliminate glitchiness</span>
			drawerMask.<span style="color: #006600;">cacheAsBitmap</span> = <span style="color: #000000; font-weight: bold;">true</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">rawChildren</span>.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>drawerMask<span style="color: #66cc66;">&#41;</span>;
			<span style="color: #808080; font-style: italic;">// assign mask </span>
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">drawer</span>.<span style="color: #006600;">mask</span> = drawerMask;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> slide<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>openBtn.<span style="color: #006600;">label</span> == <span style="color: #ff0000;">&quot;Open&quot;</span><span style="color: #66cc66;">&#41;</span>
			<span style="color: #66cc66;">&#123;</span>
				drawerPusher.<span style="color: #0066CC;">width</span> =  drawer.<span style="color: #0066CC;">width</span> + <span style="color: #cc66cc;">20</span>;
				openBtn.<span style="color: #006600;">label</span> = <span style="color: #ff0000;">&quot;Close&quot;</span>;
			<span style="color: #66cc66;">&#125;</span>
			<span style="color: #b1b100;">else</span>
			<span style="color: #66cc66;">&#123;</span>
				drawerPusher.<span style="color: #0066CC;">width</span> = <span style="color: #cc66cc;">0</span>
				openBtn.<span style="color: #006600;">label</span> = <span style="color: #ff0000;">&quot;Open&quot;</span>;
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;/</span>mx:Script<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;</span>mx:HBox <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;100%&quot;</span> horizontalScrollPolicy=<span style="color: #ff0000;">&quot;off&quot;</span> verticalScrollPolicy=<span style="color: #ff0000;">&quot;off&quot;</span><span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>mx:Spacer id=<span style="color: #ff0000;">&quot;drawerPusher&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;</span>mx:VBox id=<span style="color: #ff0000;">&quot;drawer&quot;</span> moveEffect=<span style="color: #ff0000;">&quot;Move&quot;</span> <span style="color: #0066CC;">backgroundColor</span>=<span style="color: #ff0000;">&quot;#cccccc&quot;</span><span style="color: #66cc66;">&gt;</span>
			<span style="color: #66cc66;">&lt;</span>mx:Label <span style="color: #0066CC;">text</span>=<span style="color: #ff0000;">&quot;I'm in a drawer&quot;</span> <span style="color: #66cc66;">/&gt;</span>
			<span style="color: #66cc66;">&lt;</span>mx:<span style="color: #0066CC;">Button</span> label=<span style="color: #ff0000;">&quot;Button1&quot;</span> <span style="color: #66cc66;">/&gt;</span>
			<span style="color: #66cc66;">&lt;</span>mx:<span style="color: #0066CC;">Button</span> label=<span style="color: #ff0000;">&quot;Button2&quot;</span> <span style="color: #66cc66;">/&gt;</span>
			<span style="color: #66cc66;">&lt;</span>mx:<span style="color: #0066CC;">Button</span> label=<span style="color: #ff0000;">&quot;Button3&quot;</span> <span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;/</span>mx:VBox<span style="color: #66cc66;">&gt;</span>
&nbsp;
		<span style="color: #66cc66;">&lt;</span>mx:Spacer id=<span style="color: #ff0000;">&quot;tabSpacer&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;8&quot;</span> <span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;</span>mx:HBox id=<span style="color: #ff0000;">&quot;tabs&quot;</span> rotation=<span style="color: #ff0000;">&quot;90&quot;</span> moveEffect=<span style="color: #ff0000;">&quot;Move&quot;</span><span style="color: #66cc66;">&gt;</span>
			<span style="color: #66cc66;">&lt;</span>mx:<span style="color: #0066CC;">Button</span> id=<span style="color: #ff0000;">&quot;openBtn&quot;</span> label=<span style="color: #ff0000;">&quot;Open&quot;</span> click=<span style="color: #ff0000;">&quot;slide()&quot;</span> <span style="color: #66cc66;">/&gt;</span>	
		<span style="color: #66cc66;">&lt;/</span>mx:HBox<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>mx:HBox<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;/</span>mx:Application<span style="color: #66cc66;">&gt;</span></pre></div></div>

<p>Hopefully this can save someone else the headaches I had.<br />
Props to <a href="http://twitter.com/andytrice">@andytrice</a> for the cacheAsBitmap tip in his <a href="www.insideria.com/2008/01/flex-graphics-tricks-part-1-ma.html">insideria article on masking</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2010/05/02/flex-mask-and-move-effect/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Thoughts (aka moan) about Buzzword</title>
		<link>http://danny-t.co.uk/index.php/2010/04/22/thoughts-aka-moan-about-buzzword/</link>
		<comments>http://danny-t.co.uk/index.php/2010/04/22/thoughts-aka-moan-about-buzzword/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 07:01:27 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=193</guid>
		<description><![CDATA[I&#8217;ve been using Buzzword for a few years now, it&#8217;s still one of the best examples of an RIA that stands up against it&#8217;s costlier, heavier installable counterparts. Having your documents online accessible from anywhere is a great facility plus, there are some truly innovative UI aspects that make using it a great experience, or [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using <a href="http://buzzword.acrobat.com/">Buzzword</a> for a few years now, it&#8217;s still one of the best examples of an RIA that stands up against it&#8217;s costlier, heavier installable counterparts. Having your documents online accessible from anywhere is a great facility plus, there are some truly innovative UI aspects that make using it a great experience, or example paging in scrollbars, great text-flow around images and the history feature is first class.</p>
<p>That said, it definitely feels like it might be a bit of a second class citizen to Adobe. As I mentioned I&#8217;ve been using Buzzword for literally years and witnessed it evolve considerably since it&#8217;s earlier days. However, that evolution appears to have slowed. The only notable feature to have been added in the past few months is Workspaces. Other than this I know of a long list of feature requests that are as yet, unfulfilled. To be fair, this is more a rant about Buzzword specifically and not Acrobat.com as a whole as I haven&#8217;t fully checked out the presentation or &#8216;tables&#8217; software and they have added support for conferencing with Adobe Connect so maybe that&#8217;s where efforts are being spent. </p>
<p>Workspaces is however, a great feature which I would love to make full use of&#8230; but can&#8217;t:<br />
<a href="http://danny-t.co.uk/wp-content/uploads/Picture-6.png"><img src="http://danny-t.co.uk/wp-content/uploads/Picture-6.png" alt="" title="Picture 6" width="637" height="80" class="aligncenter size-full wp-image-191" /></a><br />
This has been the case for a long time now and several other aspects such as Connect are restricted by this. Whilst I appreciate there are legal and corporate considerations here that argument only stands for so long, what year is this?! I&#8217;ve been a fully-paid up user of a lot of SAAS services who have managed to figure this out. I did moan about this on twitter a while back to which I did get a response from the acrobat twitter account informing me to sign up to be notified when they worked this out, however I have been on the notification list for a long time now and have never had even an update from it.</p>
<p>Talking of SAAS or cloud based software, I&#8217;m a techie and a businessman, probably the ideal target audience for Acrobat.com I&#8217;m not afraid to be an early adopter of technologies and am comfortable signing up to such things. Which is why I also use Google Chrome as my current browser of choice&#8230; which is why this is also annoying:<br />
 <a href="http://danny-t.co.uk/wp-content/uploads/Picture-7.png"><img src="http://danny-t.co.uk/wp-content/uploads/Picture-7.png" alt="" title="Picture 7" width="298" height="178" class="aligncenter size-full wp-image-192" /></a><br />
I appreciate Chrome is a new browser and I don&#8217;t expect every new technology that comes along to be instantly fully supported. However before they blocked Chrome it did work, it was glitchy but then a lot of sites are and that&#8217;s what you expect in early release software. A much more welcome approach would have been a note saying Chrome wasn&#8217;t fully tested yet so an alternative browser is recommended but you&#8217;re free to carry on if you choose. </p>
<p>UPDATE: see Bob Treitman&#8217;s (Adobe QA engineer &#8211; I believe) comment below explaining the above is an FP10.1 issue.</p>
<p>Anyway, I will continue to use Buzzword for now (not to mention stop moaning and get some work done) but I am getting increasingly disheartened by the lack of new features and restrictive US-only availability. I will also have a look at other similar services, I do use Google docs but it still feels like a webpage as opposed to a word processor, feel free to suggest alternatives in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2010/04/22/thoughts-aka-moan-about-buzzword/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Merge folders on copy instead of replace on OSX</title>
		<link>http://danny-t.co.uk/index.php/2010/03/09/merge-folders-on-copy-instead-of-replace-on-osx/</link>
		<comments>http://danny-t.co.uk/index.php/2010/03/09/merge-folders-on-copy-instead-of-replace-on-osx/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 20:33:53 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Mac/OS X]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=184</guid>
		<description><![CDATA[When trying to copy a folder onto another of the the same name in OSX you will only get prompted to replace the items and not merge them. This is a real pain in the ass if you&#8217;re trying to merge folders and if the folder has several other nested folders. I just came across [...]]]></description>
			<content:encoded><![CDATA[<p>When trying to copy a folder onto another of the the same name in OSX you will only get prompted to replace the items and not merge them. This is a real pain in the ass if you&#8217;re trying to merge folders and if the folder has several other nested folders.</p>
<p>I just came across this exact scenario trying to update the Flex SDK and copy in the Datavisualisation components (as instructed <a href="http://www.adobe.com/support/documentation/en/flex/3/releasenotes_flex3_sdk.html#Datavisualization">here</a>) because it just replaced the SDK!</p>
<p>Anyway to resolve this copying from terminal can behave like you would expect:</p>
<p><code>cp -R -n /SoureFolder/* /TargetFolder/</code></p>
<p>so in the case of the datavis components:</p>
<p><code>cp -R -n /Users/[username]/Downloads/datavisualization_sdk3.5/*<br />
/Applications/Adobe\ Flex\ Builder\ 3\ Plug-in/sdks/3.5.0/</code></p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2010/03/09/merge-folders-on-copy-instead-of-replace-on-osx/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flex framework component localization</title>
		<link>http://danny-t.co.uk/index.php/2010/03/07/flex-framework-component-localization/</link>
		<comments>http://danny-t.co.uk/index.php/2010/03/07/flex-framework-component-localization/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 00:21:27 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=180</guid>
		<description><![CDATA[Having just gone through far too many hoops to get a the flex framework localized I thought I&#8217;d share a few notes here. All I was trying to achieve was to ensure the Flex components (mx) adhere to a selected locale so things like date choosers and other locale-dependent components could be tailored to the [...]]]></description>
			<content:encoded><![CDATA[<p>Having just gone through far too many hoops to get a the flex framework localized I thought I&#8217;d share a few notes here.</p>
<p>All I was trying to achieve was to ensure the Flex components (mx) adhere to a selected locale so things like date choosers and other locale-dependent components could be tailored to the users chosen language.</p>
<p>This is easy to do but took a long time to figure out, so for the benefit of others (and no doubt myself in the future):</p>
<h3>Localizing the flex framework</h3>
<ul>
<li>Go to <a href="http://ttfx.org/Tontons_Flexeurs/BabelFlex.html">http://ttfx.org/Tontons_Flexeurs/BabelFlex.html</a> and download your chosen language(s)</li>
<li>Extract the zip and copy the fr_FR (or whatever lang) to<br />
 [your flex installation]/sdk/3.4.0/frameworks/locale/</li>
<li>Add the chosen language to your flex compiler arguments  -locale=fr_FR,en_US</li>
<p>And you&#8217;re done! Setting resourceManager.localeChain = ['fr_FR', 'en_US'] or whichever language you want will then change the days of week and month names etc to suit the selected language.</p>
<p>For something so simple I had to do ALOT of digging, props to <a href="http://twitter.com/Fitzchev/statuses/10069186091">@fitzchev</a> for the babelflex link.<br />
<strong><em>WHY ARE THESE NOT IN THE SDK BY DEFAULT????????!!!!!!</em></strong><br />
Apparently they are in Flex4 which is good news but Flex has been around for how long now? Part of the reason this took so long to figure out is because I refused to believe that I had to either write my own or find others&#8217; translations for such major languages as French, Spanish, German etc.</p>
<p>Before finding the BabelFlex conversions I&#8217;d also explored the process for creating my own localized framework bundles but that&#8217;s covered well in the BabelFlex readme in all of the downloads so head over there if you need to.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2010/03/07/flex-framework-component-localization/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Optimal RIA development hardware</title>
		<link>http://danny-t.co.uk/index.php/2010/02/13/optimal-ria-development-hardware/</link>
		<comments>http://danny-t.co.uk/index.php/2010/02/13/optimal-ria-development-hardware/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 22:06:23 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Mac/OS X]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=170</guid>
		<description><![CDATA[No matter how much we spend on new hardware, progress bars, spinning timers, system freezes and occasionally crashes are a familiar site when developing RIAs. My Macbook Pro seems to be fast approaching the end of it&#8217;s life and I&#8217;ve started to think about a new machine. So I thought rather than spend forever looking [...]]]></description>
			<content:encoded><![CDATA[<p>No matter how much we spend on new hardware, progress bars, spinning timers, system freezes and occasionally crashes are a familiar site when developing RIAs. My Macbook Pro seems to be fast approaching the end of it&#8217;s life and I&#8217;ve started to think about a new machine.</p>
<p>So I thought rather than spend forever looking up hardware specs, recommended platforms and whatever, I&#8217;d just do the lazy thing and put it out there to the <a href="http://en.wikipedia.org/wiki/Lazyweb">#lazyweb</a> and see what came up.</p>
<p><a href="http://danny-t.co.uk/wp-content/uploads/riahardware.png"><img src="http://danny-t.co.uk/wp-content/uploads/riahardware.png" alt="" title="ria hardware" width="608" height="300" class="aligncenter size-full wp-image-171" /></a></p>
<p>Within moments the ever-helpful <a href="http://www.seantheflexguy.com/">seantheflexguy</a> responded with his spec and his endorsement of his setup:<br />
<a href="http://twitter.com/seantheflexguy/statuses/9070997938"><img src="http://danny-t.co.uk/wp-content/uploads/seantheflexguyRiaSpec.png" alt="" title="seantheflexguyRiaSpec" width="538" height="268" class="aligncenter size-full wp-image-172" /></a></p>
<p>Well, that was very useful and I thought how great it would be if we could collate more information about other RIA developers&#8217; setups and how they rate them. </p>
<p>So feel free to contribute and copy the following into the comments and fill it in and you can help <del datetime="2010-02-13T21:36:34+00:00">do my research for me</del> share hardware spec for the benefit of the RIA community <img src='http://danny-t.co.uk/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .<br />
<code><br />
Computer:<br />
Processor:<br />
RAM:<br />
Hard Disk Size:<br />
Hard Disk Speed:<br />
Primary Software Used:<br />
Rating:  / 10<br />
Other Comments:<br />
</code></p>
<p>Here&#8217;s mine for starters:</p>
<p>Computer: Macbook Pro 17&#8243;<br />
Processor: 2.4Ghz Intel Core 2 Duo<br />
RAM: 4Gb<br />
Hard Disk Size: 150Gb<br />
Hard Disk Speed: 5600rpm (i think)<br />
Primary RIA development Software Used: Flex Builder, Visual Studio 2008 (under VMWare Fusion), Sql Server 2008<br />
Rating:  7 / 10<br />
Other Comments: The machine has been a real workhorse for the past 2 years and has taken quite a bit of torment from me. The hardware has been fairly robust although the problems are starting to present themselves now (now i&#8217;m out of warranty!) and things are very costly to put right. Runs very hot when running FlexBuilder in OSX and VS in windows and has really started to slow down lately. Never had much of a problem with system crashes or freezing other than the occasional browser fail.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2010/02/13/optimal-ria-development-hardware/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

