<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>

<channel>
	<title>Aral Balkan &#187; Flash</title>
	<atom:link href="http://aralbalkan.com/category/development/flash/feed" rel="self" type="application/rss+xml" />
	<link>http://aralbalkan.com</link>
	<description>Passionate geekisms.</description>
	<lastBuildDate>Wed, 01 Feb 2012 18:53:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
		<item>
		<title>Embedding Viddler videos at full resolution</title>
		<link>http://aralbalkan.com/2243</link>
		<comments>http://aralbalkan.com/2243#comments</comments>
		<pubDate>Thu, 04 Jun 2009 20:18:13 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/2243</guid>
		<description><![CDATA[Viddler produces some of the highest quality web video I've seen. More importantly, they don't resize your video as you're uploading it so it's perfect for screencasts. It's a shame, then, that their default embed code has static hardcoded dimensions instead of the actual dimensions of your video which means that your video gets scaled [...]]]></description>
			<content:encoded><![CDATA[<p id="top" /><a href="http://viddler.com">Viddler</a> produces some of the highest quality web video I've seen. More importantly, they don't resize your video as you're uploading it so it's perfect for screencasts. It's a shame, then, that their default embed code has static hardcoded dimensions instead of the actual dimensions of your video which means that your video gets scaled and appears to be of a lower quality than it actually is.</p>
<p>Fixing this is trivial.</p>
<p><span id="more-2243"></span></p>
<p>Simply edit the embed code and change the <code>width</code> property to the actual width of your video. For the height property, you have to add 42 pixels (the height of the control bar at the bottom of the video) to the height of your video. </p>
<p>That's it! Embed your video using the new dimensions and it will play back at its native size and look gorgeous.</p>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/2243/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>An easier way to sign in to T-Mobile UK WiFi HotSpots</title>
		<link>http://aralbalkan.com/2232</link>
		<comments>http://aralbalkan.com/2232#comments</comments>
		<pubDate>Thu, 04 Jun 2009 19:49:47 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/2232</guid>
		<description><![CDATA[I can access T-Mobile UK WiFi HotSpots with my T-Mobile Mobile Broadband account (I have a 3G USB stick) but I find the signing in process rather painful. It goes something like this: I have to remember my phone number (I never call my USB Stick so I've never memorized it) and type in my [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />
<div style="float:right; margin-left:1.5em;"><div id="flashcontent2020" style="width:215px; height:180px;"> </div><script type="text/javascript">
<!-- // <![CDATA[
var so = new SWFObject("http://aralbalkan.com/wp-content/plugins/air-badge/AIRInstallBadge.swf", "Badge", "215", "180", "9.0.115", "#FFFFFF");
so.useExpressInstall("http://aralbalkan.com/wp-content/plugins/air-badge/expressinstall.swf");
so.addVariable("airversion", "1.0");
so.addVariable("appname", "TMobileHotSpotSignInAIR");
so.addVariable("appurl", "http://aralbalkan.com/downloads/TMobileHotSpotSignInAIR.air");
so.addVariable("appid", "TMobileHotSpotSignInAIR");
so.addVariable("pubid", "");
so.addVariable("appversion", "1.1");
so.addVariable("imageurl", "http://aralbalkan.com/images/tmobile-air-install-badge.jpg");
so.addVariable("appinstallarg", "installed from web");
so.addVariable("applauncharg", "launched from web");
so.addVariable("helpurl", "help.html");
so.addVariable("hidehelp", "true");
so.addVariable("skiptransition", "false");
so.addVariable("titlecolor", "#00AAFF");
so.addVariable("buttonlabelcolor", "#00AAFF");
so.addVariable("appnamecolor", "#00AAFF");
so.addVariable("str_err_airswf", "<u>Running locally?</u><br/><br/>The AIR proxy swf won't load properly when this demo is run from the local file system.");
so.write("flashcontent2020");
// ]]&gt; -->
</script>
</div>
<p>I can access T-Mobile UK WiFi HotSpots with my <a href="http://www.t-mobile.co.uk/shop/mobile-broadband/" title="Mobile Broadband on Your Laptop">T-Mobile Mobile Broadband account</a> (I have a 3G USB stick) but I find the signing in process rather painful. It goes something like this:</p>
<p><span id="more-2232"></span></p>
<p>I have to remember my phone number (I never call my USB Stick so I've never memorized it) and type in my crazy long password (which I <em>have</em>, apparently memorized). This means that I bring up dashboard, copy my phone number from a sticky note, paste it into the form and then type my password and remember to tick the checkbox so that I agree to T-Mobile's terms and conditions for the millionth time.</p>
<p>Needless to say, this gets old fast. </p>
<p>So, I took a little time out and built a little AIR app to automate the process. You can install it using the AIR badge (works on Mac, Windows, and Linux), above, and you can see it in action in the screencast below.</p>
<p><center><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="576" height="402" id="viddler_aral_11"><param name="movie" value="http://www.viddler.com/player/f5fd9bd5/" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><embed src="http://www.viddler.com/player/f5fd9bd5/" wmode="transparent" width="576" height="402" type="application/x-shockwave-flash" allowScriptAccess="always" allowFullScreen="true" name="viddler_aral_11" /></embed></object></center></p>
<p>I hope someone else out there finds it useful and T-Mobile, if you're listening, get in touch with me at aral@aralbalkan.com if you'd me to make an app like this for you guys.</p>
<p><strong>Update:</strong> Exactly 11 minutes after I tweeted about this, <a href="http://blog.natebeck.net/">Nate Beck</a> from T-Mobile US contacted me and, before the night is over, the app is getting prepped for an internal demo at T-Mobile US next week. </p>
<p>Moral of the story? Never underestimate the power of the Twitternets or the importance of apps, even simple ones, that improve user experience. :)  </p>
<p><img src="http://aralbalkan.com/wp-content/uploads/2009/06/tmobile-hot-spot-sign-in-air.jpg" alt="Tmobile hot Spot Sign in air" height="190" width="295" style="display:none;"></p>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/2232/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>The Flex 4 One-Step Migration Challenge</title>
		<link>http://aralbalkan.com/2209</link>
		<comments>http://aralbalkan.com/2209#comments</comments>
		<pubDate>Wed, 27 May 2009 10:05:34 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/2209</guid>
		<description><![CDATA[Dear Flex community and Flex engineering team, I have a challenge for you: let's make Flex 4 migration a one-step process. Yesterday, I documented the trouble I had in porting my Flex 3 app to Flex 4 and I blamed the move from the Fx prefix to namespaces for my woes. As some of you [...]]]></description>
			<content:encoded><![CDATA[<p id="top" /><img src="http://aralbalkan.com/wp-content/uploads/2009/05/flex-4-one-step-migration-challenge.jpg" alt="Flex 4 One Step Migration Challenge" height="365" width="290" style="float:right; margin-left:1.5em;"></p>
<p>Dear Flex community and Flex engineering team, I have a challenge for you: let's make Flex 4 migration a one-step process.</p>
<p><span id="more-2209"></span></p>
<p>Yesterday, <a href="http://aralbalkan.com/2202" title="Aral Balkan - The change from Fx prefix to namespaces is an EPIC FAIL for Flex">I documented the trouble I had in porting my Flex 3 app to Flex 4</a> and I blamed the move from the Fx prefix to namespaces for my woes. As some of you have pointed out, some of my woes were exacerbated because I was migrating from an earlier version of the Flex 4 Alpha SDK to the latest version. This is true. However, it is also true that Flex 3 to Flex 4 migration is not trivial and will require changes to existing code, libraries, and skins, especially concerning the introduction of namespaces in CSS.</p>
<p>My inner engineer understands that namespaces are the most elegant long-term solution. It doesn't help that my inner engineer is feuding loudly with my inner agile development evangelist (who is appalled at the sacrifice of short-term simplicity in favor of long-term design) and at my inner user experience designer who cannot help but look at the issue from the perspective of the end user. </p>
<p>That said, if we can agree on a set of core facts regarding this change in Flex 4, maybe we can take some positive action to lessen its impact:  </p>
<ol>
<li>The introduction of language and library namespaces in Flex 4 adds additional complexity to the framework.</li>
<li>The introduction of CSS namespaces may require previous code, components, and skins to be reworked when migrating from Flex 3 to Flex 4 apps. This is an undesirable, manual, and potentially error-prone process that should, if possible, be automated.</li>
<li>Developers coming from non-namespaced environments will need a gentle introduction to namespaces, especially the relationship between language and library namespaces.</li>
</ol>
<p>Given these, I'm issuing a challenge to the Flex community and the Flex engineering team: </p>
<blockquote><p>Flex 3 to Flex 4 migration should be an automatic, one-step process. Ideally, there Should Exist (tm) an open-source script that migrates Flex 3 projects to Flex 4. This should also be used by Flex Builder to make it trivial for developers to upgrade their Flex 3 projects to Flex 4 without manual intervention.</p></blockquote>
<p>So, what do you guys think? Who wants to take this on? </p>
<p>If you guys and gals agree that migrating to Flex 4 should be this simple, we need the following:</p>
<ol>
<li>A volunteer to spearhead the project: the volunteer should set up a project in GitHub (SVN is so last half-hour) and be prepared to put in the hours to coordinate with the other developers, etc.</li>
<li>Volunteers to work on the project</li>
<li>Buy-in/participation/support from Adobe so that the solution that's built will also be part of Flex Builder</li>
</ol>
<p>Flex 4 is going to be a revolutionary release that, for the most part, makes Flex even easier to use. I am already in love with the new states feature, I love the new Gumbonents (Gumbo components), and the new keyframe animations, just to name a few new features that I've used recently. My one worry is that a manual migration process that affects existing code, libraries, and skins will overshadow these improvements and affect the adoption and transition to Flex 4. We can fix this by making Flex 4 migration a one-step process.</p>
<p>So, who's in?</p>
<p>Thoughts? Comments? Suggestions? Leave a comment!</p>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/2209/feed</wfw:commentRss>
		<slash:comments>32</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>The change from Fx prefix to namespaces is an EPIC FAIL for Flex opportunity to concentrate on making Flex 3 to Flex 4 migration seamless</title>
		<link>http://aralbalkan.com/2202</link>
		<comments>http://aralbalkan.com/2202#comments</comments>
		<pubDate>Tue, 26 May 2009 10:38:01 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Commentary]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/2202</guid>
		<description><![CDATA[Update: OK, so everyone's caught up on the EPIC FAIL title (hey, it got your attention!) so I've changed it — I retract my original statement: it's not an EPIC FAIL, heck, it's probably not even a FAIL. However, it's definitely a FOL, so let's move on to address the real issue here which is [...]]]></description>
			<content:encoded><![CDATA[<p id="top" /><strong>Update:</strong> OK, so everyone's caught up on the EPIC FAIL title (hey, it got your attention!) so I've changed it — I retract my original statement: it's not an EPIC FAIL, heck, it's probably not even a FAIL. However, it's definitely a FOL, so let's move on to address the real issue here which is that it's in all of our interests to make Flex 3 to Flex 4 migration as easy as possible.  As such, please read my follow-up post, <a href="http://aralbalkan.com/2209">The Flex 4 One-Step Migration Challenge</a> and let's try and make a list of the Flex 4 migration challenges for Flex 3 apps and try to address them. </p>
<p>Please also note what I mean by "migration" (<a href="http://aralbalkan.com/2202#comment-256102">from the comments</a>):</p>
<p><span id="more-2202"></span></p>
<blockquote><p>I don’t consider simply compiling a Flex 3 app to constitute Flex 4 migration … If you’re migrating to Flex 4, you are most likely doing it in order to take advantage of Flex 4 features and thus you will want to layer in and/or transition to Spark components at some point and that’s when you will require more extensive namespace changes to your entire codebase. (And you real apps have dozens, if not hundreds of source files, libraries, skins, etc., all of which have to be reviewed and possibly updated.) That’s the use case that I feel we must make as painless as possible.</p>
<p>Having an easy migration path from Flex 3 to 4 will benefit all concerned and I cannot see how trying to make that process simpler (via an effort such as the 1-step migration challenge, etc.) is a bad thing.</p></blockquote>
<p><strong>Original post follows…</strong></p>
<p><img src="http://aralbalkan.com/wp-content/uploads/2009/05/flex-fail-whale-with-apologies-to-yiying-lu.jpg" alt="Flex Fail Whale (with apologies to Yiying Lu)" height="268" width="295" style="float:right; margin-left:1.5em;"></p>
<p>I just upgraded a simple app I wrote yesterday from an earlier version of Flex 4 (Gumbo) to the latest SDK and I got hit with the Fx prefix to namespace changes. Needless to say, I'm not impressed at all.</p>
<p>With the Fx prefix, I could easily <em>layer</em> Gumbo functionality into my existing apps and easily mix Spark and Halo <em>without changing existing code or libraries</em>. This ability is now gone.</p>
<p>I had to go through both my code <em>and third-party libraries</em> to add namespaces and I even had to alter the CSS. Previously, I had no such headaches and everything Just Worked (tm). Mixing Flex 3 and 4 was a joy. Not any longer.</p>
<p>This is a <strong>huge step backwards</strong> for anyone wanting to migrate existing Flex 3 apps to Flex 4 or reuse components. It makes the transition to Flex 4 and the creation of hybrid Flex 3/4 apps a real pain. It’s the triumph of formalism over pragmatism and the platform will suffer as a result.</p>
<p>And this <strong>namespace soup</strong> is going to make it all the more confusing for people new to the Flex platform to make sense of things.</p>
<p>Flex and similar technologies are commodities and compete in a <em>supply market</em>. The simpler things are, the more people will use them, and the higher the chances of the platform surviving and flourishing. Simplicity, <em>user experience</em> (yeah, even for a framework/platform) are key.</p>
<p>This namespace change adds lots of complexity for <em>very little gain</em>. It may satisfy the formalists who are probably as we speak trying to find a way to incorporate XSLT into the Flex workflow somehow and whose wet dreams would be a shift from ActionScript to Java for the platform but I hope that everyone involved understands the ramifications this move will have on developers who are new to the platform (so is that mx: again? No? fx: ... oh but that tag is s: and oh, that’s the language namespace but that’s a library... what again? huh? Just a sec, I think SilverLight was easier...) as well as for people migrating and transitioning existing Flex 3 applications.</p>
<p>Flex gods, please reconsider.</p>
<p><strong>Update:</strong> As some of you have pointed out, my experience was exacerbated because I was porting from a previous version of Flex 4 to the latest Flex 4 SDK. You're right that this made my porting experience more difficult than a straight Flex 3 to Flex 4 port would have been since I had removed namespaces on all mx and Spark (previously Fx) components. However, I stand by my core point which is that the introduction of these language and library namespaces, along with namespaces in CSS makes it more difficult than necessary to port apps and will be more confusing for developers who are new to the platform.</p>
<p>A number of you have pointed out that the Fx prefix was not a long-term solution and that we would be faced with a similar choice for Flex 5. I don't feel that that's accurate. Flex 5 could keep using the Fx prefix for new components as I don't see such a radical overhaul of the component system occurring in the next version.</p>
<p>And while it's true that we already have namespaces, we've now introduced two framework-level namespaces and separated library namespaces and also introduced namespaces into CSS. Basically, we've introduced a lot of complexity for what I would argue is very little gain. </p>
<p>I'm sure tooling will take care of some of this complexity (and that should work in Adobe's favor and translate to more Flex Builder licenses sold even though they were not the ones to instigate this change). However, when you have to rely on tooling perhaps the problem is that the underlying technology is too complex. There is something sublimely beautiful about not needing any tooling whatsoever in Python, for example, that speaks volumes about the elegance of the language. Let's just say that I don't believe Flex would be in this namespace soup if Guido were calling the shots.</p>
<p>That said, Flex is still the most elegant rich-client technology I know. Yes, I love the tools in Cocoa and Objective-C is quite a marvelous achievement when you consider the limitations of C that they had to work with but there are also up-and-coming contenders ranging from Nokia's Qt to Unity 3D that are vying for the limited attentions of developers in a supply market. Simplicity is a key factor in differentiating your platform and wooing developers. </p>
<p>Simplicity is not something to be ashamed of. It does not make your Code Fu any less if you have simple tools and languages to work with. It just makes you all the more productive and lets you concentrate on crafting that most important part of your application: the user experience. </p>
<p>Flex is simple. We should try our utmost to at least preserve this simplicity, if not to take it a step further in each release.  </p>
<p><em>Flex Fail Whale from <a href="http://www.yiyinglu.com/sc/illustration" title="Yiying Lu">Twitter Fail Whale by Yiying Lu</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/2202/feed</wfw:commentRss>
		<slash:comments>53</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Gotcha: Resize transition for Adobe AIR WindowedApplication in Flex 4</title>
		<link>http://aralbalkan.com/2177</link>
		<comments>http://aralbalkan.com/2177#comments</comments>
		<pubDate>Mon, 25 May 2009 12:56:45 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/2177</guid>
		<description><![CDATA[Just ran into this gotcha while trying to apply a Resize transition for my AIR WindowedApplication in Flex 4 (Gumbo) using states. It appears — at least in my app — that simply setting the width.stateName and height.stateName doesn't work: it causes the animation to jump. Instead, I found that I also had to set [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />Just ran into this gotcha while trying to apply a Resize transition for my AIR WindowedApplication in Flex 4 (Gumbo) using states. It appears — at least in my app — that simply setting the width.stateName and height.stateName doesn't work: it causes the animation to jump. Instead, I found that I also had to set explicitHeight.stateName, explicitWidth.stateName and minWidth.stateName and minHeight.stateName.</p>
<p>Here's a simple snippet to illustrate:</p>
<p><span id="more-2177"></span></p>
<pre class="actionscript">&lt;WindowedApplication xmlns=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span>
    <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;416&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;285&quot;</span>
    explicitWidth=<span style="color: #ff0000;">&quot;416&quot;</span> explicitHeight=<span style="color: #ff0000;">&quot;285&quot;</span>
    minWidth=<span style="color: #ff0000;">&quot;416&quot;</span> minHeight=<span style="color: #ff0000;">&quot;285&quot;</span> 
&nbsp;
    ...
&nbsp;
    <span style="color: #0066CC;">width</span>.<span style="color: #006600;">headLess</span>=<span style="color: #ff0000;">&quot;110&quot;</span> <span style="color: #0066CC;">height</span>.<span style="color: #006600;">headLess</span>=<span style="color: #ff0000;">&quot;198&quot;</span>
    explicitWidth.<span style="color: #006600;">stateName</span>=<span style="color: #ff0000;">&quot;110&quot;</span> explicitHeight.<span style="color: #006600;">headLess</span>=<span style="color: #ff0000;">&quot;198&quot;</span>
    minWidth.<span style="color: #006600;">headLess</span>=<span style="color: #ff0000;">&quot;110&quot;</span> minHeight.<span style="color: #006600;">headLess</span>=<span style="color: #ff0000;">&quot;198&quot;</span>
&gt;
&lt;transitions&gt;
    &lt;Transition&gt;
        &lt;Resize <span style="color: #0066CC;">duration</span>=<span style="color: #ff0000;">&quot;500&quot;</span> <span style="color: #0066CC;">target</span>=<span style="color: #ff0000;">&quot;{this}&quot;</span> easingFunction=<span style="color: #ff0000;">&quot;Quadratic.easeOut&quot;</span>/&gt;
    &lt;/Transition&gt;
&lt;/transitions&gt;
&nbsp;
&lt;states&gt;
    &lt;State <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;aliveAndWell&quot;</span>/&gt;
    &lt;State <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;headLess&quot;</span>/&gt;
&lt;/states&gt;
&nbsp;
...
&nbsp;
&lt;Script&gt;
    &lt;!<span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span>
		<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">effects</span>.<span style="color: #006600;">easing</span>.<span style="color: #006600;">Quadratic</span>;
&nbsp;
        <span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> offWithHisHead<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#123;</span>
            currentState = <span style="color: #ff0000;">&quot;headLess&quot;</span>;
        <span style="color: #66cc66;">&#125;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;">// etc.</span>
    <span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span>&gt;
&lt;/Script&gt;
&nbsp;
...
&nbsp;
&lt;/WindowedApplication&gt;
&nbsp;</pre>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/2177/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>A lovely little framework called Swiz</title>
		<link>http://aralbalkan.com/1960</link>
		<comments>http://aralbalkan.com/1960#comments</comments>
		<pubDate>Mon, 09 Feb 2009 22:28:39 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[dependency injection]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[inversion of control]]></category>
		<category><![CDATA[ioc]]></category>
		<category><![CDATA[loose coupling]]></category>
		<category><![CDATA[swiz]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/?p=1960</guid>
		<description><![CDATA[A few days ago I stumbled upon Swiz, which bills itself as the "brutally simple micro-architecture for Rich Internet Application development with Adobe Flex." If the term micro-architecture or the buzzword Rich Internet Application haven't scared you off yet, read on, because it really is a lovely little framework. Swiz is a lightweight framework for [...]]]></description>
			<content:encoded><![CDATA[<p id="top" /><img src="/images/swiz.png" width="290" height="195" alt="Swiz: Inversion of Control/Dependency Injection framework for Flex and ActionScript" style="float:right; margin-left:2em;"></p>
<p>A few days ago I stumbled upon <a href="http://code.google.com/p/swizframework/">Swiz</a>, which bills itself as the "brutally simple micro-architecture for Rich Internet Application development with Adobe Flex." If the term micro-architecture or the buzzword Rich Internet Application haven't scared you off yet, read on, because it really is a lovely little framework.</p>
<p><span id="more-1960"></span></p>
<p><a href="http://code.google.com/p/swizframework/">Swiz</a> is a lightweight framework for Flex (and ActionScript) that lets you separate your business and presentation logic and implement a loosely-coupled event-based architecture in your applications. I've purposefully stayed away from using the terms Inversion of Control (IoC) and Dependency Injection (DI), even though Swiz is, at its core, an IoC framework that lets you carry out DI. The reason? I feel people get too caught up on the fancy names and either get scared off or end up blindly implementing patterns and frameworks without really understanding what they're doing or why they're doing it. Thankfully, Swiz is simple enough that you can actually understand what it does and why it does what it does. And, it doesn't pigeonhole you into a color-by-numbers straitjacket or suffocate you under a mountain of boilerplate code like some other frameworks.</p>
<p>This blog post is not meant to be an introduction to Swiz. For that, read the <a href="http://code.google.com/p/swizframework/wiki/GettingStarted">Getting Started</a> guide, <a href="http://www.onflex.org/ted/2008/09/360flex-sj-2008-introduction-to-swiz.php">watch the introductory video by Swiz creator Chris Scott</a> from his presentation at 360Flex last year, and <a href="http://soenkerohde.com/category/swiz/">read the Swiz posts on Sönke's blog</a> and those on <a href="http://cdscott.blogspot.com/">Chris's blog</a>.</p>
<p>Instead of an introduction, I want to document how I'm using Swiz and the modifications I've made to it in hopes that they might help other developers and possibly spark conversation on future features.</p>
<h3>Open a window, let some AIR in</h3>
<p>(Sorry, I couldn't resist!)</p>
<p>I ran into a couple of issues with Swiz when I finally got the chance to play with it yesterday. First off, I couldn't get the autowiring to work with new Window instances in AIR. Googling around, I found that this was <a href="http://code.google.com/p/swizframework/issues/detail?id=10&can=1">a known issue and that Sönke had already applied a fix</a> in the form of a <code>registerWindow()</code> method that you call before opening your window. The fix, however, didn't work for me without an additional little patch to manually force the autowiring on the Window class itself. So my <code>registerWindow()</code> method ended up looking like this:</p>
<pre class="actionscript"><span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> registerWindow<span style="color: #66cc66;">&#40;</span>window:IEventDispatcher<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
    window.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ADDED_TO_STAGE</span>, handleAutowireEvent, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
    window.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">REMOVED_FROM_STAGE</span>, handleAutowireEvent, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
    autowire<span style="color: #66cc66;">&#40;</span>window<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre>
<p>With that little change, my new Window instances get autowired correctly. </p>
<h3>Wrrooom, wrrrrooom!</h3>
<p>I also saw that the autowiring code was causing quite a bit of performance slow-down. So I decided that autowiring should be opt-in. I modified the framework so that only classes that have a public <code>autowire</code> property declared are autowired. I usually declare this in my classes like this:</p>
<pre class="actionscript"><span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> autowire:<span style="color: #0066CC;">Boolean</span> = <span style="color: #000000; font-weight: bold;">true</span>;</pre>
<p>I could have made it so that I used a metadata tag instead but the whole idea was to stay away from the overhead of describeType. (I'm not sure what additional overhead describeType's XML conversion adds on to the internal describeTypeJSON method but I have a feeling it's quite substantial. If so, it would probably be nice to have a method to just return metadata for a given class &mdash; in the spirit of <code>getQualifiedClassName</code> &mdash; to make it more performant to parse metadata at runtime.)</p>
<p>So my <code>handleAutowireEvent()</code> method in the Swiz class looks like this now:</p>
<pre class="actionscript"><span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> handleAutowireEvent<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #808080; font-style: italic;">// Autowiring is strictly opt-in for performance/efficiency, and</span>
	<span style="color: #808080; font-style: italic;">// having an explicit flag in the class should make your intent clearer.</span>
	<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">target</span>.<span style="color: #006600;">hasOwnProperty</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;autowire&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		autowire<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">target</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p>Similarly, the <code>handleRemoveEvent()</code> method simplifies to:</p>
<pre class="actionscript"><span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> handleRemoveEvent<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<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><span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">target</span>.<span style="color: #006600;">hasOwnProperty</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;autowire&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		_beanFactory.<span style="color: #006600;">unwire</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">target</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p>The performance increase has been striking: the overhead of Swiz, with this change, is entirely negligible whereas before I was experiencing a doubling in the initialization time of my app.</p>
<p>In case you make the same changes, you should also update <code>registerWindow()</code> (hey, every cycle counts right? Or something like that!):</p>
<pre class="actionscript"><span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> registerWindow<span style="color: #66cc66;">&#40;</span>window:Window<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
    window.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ADDED_TO_STAGE</span>, handleAutowireEvent, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
    window.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">REMOVED_FROM_STAGE</span>, handleRemoveEvent, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">// Fire the autowire manually for the window itself.</span>
	<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>window.<span style="color: #006600;">hasOwnProperty</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;autowire&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		autowire<span style="color: #66cc66;">&#40;</span>window<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<h3>Flex Framework? How about <em>ActionScript and</em> Flex Framework?</h3>
<p>I'm also using Swiz quite differently to how it was originally intended. Originally, you're supposed to declare your beans (beans? What are we Java?) in MXML. I found this unnecessarily limiting. So I declare my beans (or components; since neither ActionScript nor Flash are a type of coffee) in ActionScript. And, although I'm using Swiz on a Flex app currently, I don't see any reason off the top of my head why you couldn't use it in ActionScript-only projects too.</p>
<p>Here's a sample Beans class in ActionScript showing you how it's done:</p>
<pre class="actionscript">package com.<span style="color: #006600;">mydomain</span>.<span style="color: #006600;">myawesomeapp</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">swizframework</span>.<span style="color: #006600;">util</span>.<span style="color: #006600;">BeanLoader</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">mydomain</span>.<span style="color: #006600;">myawesomeapp</span>.<span style="color: #006600;">SomeController</span>;
	<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">mydomain</span>.<span style="color: #006600;">myawesomeapp</span>.<span style="color: #006600;">SomeService</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Beans <span style="color: #0066CC;">extends</span> BeanLoader
	<span style="color: #66cc66;">&#123;</span>
	        <span style="color: #808080; font-style: italic;">// Simply instantiate and return an instance...</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">get</span> someController<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:SomeController <span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">new</span> SomeController<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">set</span> messageController<span style="color: #66cc66;">&#40;</span>o:*<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span><span style="color: #66cc66;">&#125;</span>;
&nbsp;
              <span style="color: #808080; font-style: italic;">// ... or do some configuration beforehand</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">get</span> someService<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:SomeService <span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> someService:SomeService = <span style="color: #000000; font-weight: bold;">new</span> SomeService<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			someService.<span style="color: #006600;">configureSomething</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;like&quot;</span>, <span style="color: #ff0000;">&quot;totally&quot;</span>, <span style="color: #ff0000;">&quot;cool&quot;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #b1b100;">return</span> someService;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">set</span> twitter<span style="color: #66cc66;">&#40;</span>o:*<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span><span style="color: #66cc66;">&#125;</span>;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Beans<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">super</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p>So, basically, what we're doing is mimicking the methods in the ActionScript class that would have been generated from the MXML (or, more precisely, giving Swiz exactly what it's looking for in the <code>BeanLoader</code>, which are <code>readwrite</code> accessors; this is why we need the setter even though it doesn't do anything.)</p>
<p>And, finally, a gotcha that I find myself falling into: Remember to make anything you're going to <code>[Autowire]</code> or <code>[Mediate]</code> <em>public</em>. This means the properties that will receive the class instances and the event handlers. Since you'll be used to automatically making these private, take extra care!</p>
<h3>In closing</h3>
<p><a href="http://code.google.com/p/swizframework/">Swiz</a> is a lovely, lightweight framework that I'm really enjoying working with. It also has a small but active community and some good developers behind it. <a href="http://code.google.com/p/swizframework/">Play around with it</a>, why don't 'cha and let me know what you think of it in the comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/1960/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Code-behind gotcha in Flex Builder for AIR apps</title>
		<link>http://aralbalkan.com/1958</link>
		<comments>http://aralbalkan.com/1958#comments</comments>
		<pubDate>Sun, 08 Feb 2009 13:12:12 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[adobe air]]></category>
		<category><![CDATA[adobe flex]]></category>
		<category><![CDATA[code behind]]></category>
		<category><![CDATA[flex builder]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/?p=1958</guid>
		<description><![CDATA[If you're using code-behind in your AIR apps, there's a little gotcha you should watch out for: Flex Builder doesn't like it if you include your code behind class in the root package. For example, if your main MXML file is Main.mxml and your code-behind class is MainClass.as, Flex Builder gets confused and thinks that [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />If you're using <a href="http://www.adobe.com/devnet/flex/quickstart/building_components_using_code_behind/">code-behind</a> in your AIR apps, there's a little gotcha you should watch out for: Flex Builder doesn't like it if you include your code behind class in the root package.</p>
<p>For example, if your main MXML file is Main.mxml and your code-behind class is MainClass.as, Flex Builder gets confused and thinks that there should be two application configuration files (one for the MXML file and one for the AS file.) If your app.xml file is named Main-app.xml, you'll get an error along the lines of <em>Adobe AIR application is missing the corresponding MainClass-app.xml</em>.</p>
<p><span id="more-1958"></span></p>
<p>The workaround is simple, just move your code-behind class off of the root package. e.g., put it in <code>com.mydomain.myapp.view</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/1958/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Fonts not embedding in Gumbo?</title>
		<link>http://aralbalkan.com/1951</link>
		<comments>http://aralbalkan.com/1951#comments</comments>
		<pubDate>Mon, 02 Feb 2009 12:21:04 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/1951</guid>
		<description><![CDATA[You've embedded your font via DefineFont4 in Gumbo using either CSS or ActionScript, but, try as you might, the embedded font is not showing up in your project. If you were migrating a Flex 3 project in Flex Builder to Gumbo and you were previously embedding fonts, check your project settings and look under compiler [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />You've embedded your font via DefineFont4 in <a href="http://opensource.adobe.com/wiki/display/flexsdk/Gumbo" title="Gumbo - Flex SDK - Confluence">Gumbo</a> using either CSS or ActionScript, but, try as you might, the embedded font is not showing up in your project. If you were migrating a Flex 3 project in Flex Builder to Gumbo and you were previously embedding fonts, check your project settings and look under compiler flags to see if you find the following flag:</p>
<pre>-managers flash.fonts.AFEFontManager</pre>
<p><span id="more-1951"></span></p>
<p>If you do, remove it! That's the culprit right there! :) </p>
<p>Otherwise, check that you're doing everything correctly -- your embed code should look something like this:</p>
<pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Style<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    @font-face {
	    src: url(&quot;fonts/ACaslonPro-Regular.otf&quot;);
	    fontFamily: &quot;AdobeCaslonAIR&quot;;
	    cff: true;
	}
&nbsp;
	.myBeautifulTextArea {
	    fontFamily: &quot;AdobeCaslonAIR&quot;;
		fontLookup: &quot;embeddedCFF&quot;;
		fontSize: 20;
	}
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Style<span style="font-weight: bold; color: black;">&gt;</span></span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;FxTextArea</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;myBeautifulTextArea&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
&nbsp;</pre>
<p>Hope this helps save a little hair on your head (and, as always, if you find something that's just not working, create a fresh new project in Flex Builder and test out just that feature and then compare it to your main app &mdash; i.e., spike it!)</p>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/1951/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Flex SDK mx:Text component word wrap bug fix</title>
		<link>http://aralbalkan.com/1946</link>
		<comments>http://aralbalkan.com/1946#comments</comments>
		<pubDate>Sat, 31 Jan 2009 16:21:46 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/1946</guid>
		<description><![CDATA[If you're having trouble getting word wrapping to work correctly in your mx:Text components when using minWidth and maxWidth, and setting width to a percentage (e.g., minWidth="0" maxWidth="300" width="100%"), it's not you, it's the Flex SDK (see bug 12826, reported by Tom Bray). The fix, as provided by Mike Schiff, has been implemented in the [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />If you're having trouble getting word wrapping to work correctly in your mx:Text components when using <code>minWidth</code> and <code>maxWidth</code>, and setting <code>width</code> to a percentage (e.g., <code>minWidth="0" maxWidth="300" width="100%"</code>), it's not you, it's the Flex SDK (<a href="https://bugs.adobe.com/jira/browse/SDK-12826">see bug 12826</a>, reported by Tom Bray).</p>
<p>The fix, as provided by Mike Schiff, has been implemented in the SDK but until it is released you can extend <code>mx:Text</code> and implement it in your own projects:</p>
<p><span id="more-1946"></span></p>
<pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;mx:Text</span> <span style="color: #000066;">xmlns:mx</span>=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;mx:Script<span style="font-weight: bold; color: black;">&gt;</span></span></span>
		<span style="color: #339933;">&lt;![CDATA[</span>
<span style="color: #339933;">			override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {</span>
<span style="color: #339933;">				super.updateDisplayList(unscaledWidth, unscaledHeight);</span>
<span style="color: #339933;">				textField.wordWrap = textField.wordWrap || (Math.floor(measuredWidth) != Math.floor(width));</span>
<span style="color: #339933;">			}</span>
<span style="color: #339933;">		]]&gt;</span>
	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/mx:Script<span style="font-weight: bold; color: black;">&gt;</span></span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/mx:Text<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/1946/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Flash on Twitter Day: get one Flasher to join Twitter.</title>
		<link>http://aralbalkan.com/1938</link>
		<comments>http://aralbalkan.com/1938#comments</comments>
		<pubDate>Fri, 30 Jan 2009 12:25:48 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/1938</guid>
		<description><![CDATA[Today is Flash on Twitter Day. Your mission: get at least 1 Flasher to join Twitter &#038; tweet. Pls. retweet. #fotd (retweet this!) Your mission, should you choose to accept it, is to get at least one Flasher/Flexer/ActionScripter on Twitter (and they've gotta tweet). Then, introduce us to your new recruit using the #fotd hashtag [...]]]></description>
			<content:encoded><![CDATA[<p id="top" /><img src="http://aralbalkan.com/wp-content/uploads/2009/01/fotd.jpg" alt="Fotd" height="154" width="508"></p>
<blockquote><p>Today is Flash on Twitter Day. Your mission: get at least 1 Flasher to join Twitter & tweet. Pls. retweet. #fotd (<a href="http://twitter.com/home?status=RT @aral: Today is Flash on Twitter Day. Your mission: get at least 1 Flasher to join Twitter and tweet. Pls. retweet. %23fotd">retweet this!</a>)</p></blockquote>
<p><span id="more-1938"></span></p>
<p>Your mission, should you choose to accept it, is to get at least one Flasher/Flexer/ActionScripter on Twitter (and they've gotta tweet). Then, introduce us to your new recruit using the #fotd hashtag so that the Flash community can welcome them (that's a <em>d</em> at the end, unlike the conference).</p>
<p>And, finally, ask them to recruit a Flasher too (recursive real-life algorithms FTW!)</p>
<p>(Want to help spread the word? <a href="http://twitter.com/home?status=RT @aral: Today is Flash on Twitter Day. Your mission: get at least 1 Flasher to join Twitter and tweet. Pls. retweet. %23fotd">Retweet this now</a> or reblog it!)</p>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/1938/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
	</channel>
</rss>

