<?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>blog.swfjunkie.com &#187; Flash Platform</title>
	<atom:link href="http://blog.swfjunkie.com/category/flash-platform/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.swfjunkie.com</link>
	<description>random gibberish for random people</description>
	<lastBuildDate>Fri, 04 Feb 2011 22:15:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Speaking at gotoAndSki();</title>
		<link>http://blog.swfjunkie.com/2011/01/speaking-at-gotoandski/</link>
		<comments>http://blog.swfjunkie.com/2011/01/speaking-at-gotoandski/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 11:01:58 +0000</pubDate>
		<dc:creator>Sandro</dc:creator>
				<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://blog.swfjunkie.com/?p=615</guid>
		<description><![CDATA[Feel the need for some networking, experience sharing, nerdy tech talk and some proper snow action? Well i&#8217;ve just got the right thing for you then ;) gotoAndSki(); is holding its second installment in snowy switzerland (what better place for all things wintersport eh?) and there are still some tickets left. What is gotoAndSki(); gotoAndSki(); [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><a href="#"><img class="aligncenter size-full wp-image-616" title="gotoandski11" src="http://blog.swfjunkie.com/wp-content/uploads/2011/01/gotoandski11.jpg" alt="" width="609" height="240" /></a></p>
<p>Feel the need for some networking, experience sharing, nerdy tech talk and some proper snow action? Well i&#8217;ve just got the right thing for you then ;)</p>
<p><a href="http://gotoandski.com/" target="_blank">gotoAndSki();</a> is holding its second installment in snowy switzerland (what better place for all things wintersport eh?) and there are still some tickets left.</p>
<h2>What is gotoAndSki();</h2>
<p>gotoAndSki(); is quite different from your usual conference. Instead of sessions and workshops during the day, you’ll have snow sports, fun and networking. The <a href="http://switzerland.gotoandski.com/sessions-speakers/" target="_blank">nice mixture of sessions</a> will then start after the slopes are closed, in the chalet conference room, with dinner break (included in the ticket price) between the sessions.</p>
<h2>Awesome Sessions</h2>
<p>It looks like <a href="http://gotoandski.com/" target="_blank">gotoAndSki();</a> will have a <a href="http://switzerland.gotoandski.com/sessions-speakers/" target="_blank">great mix of sessions</a>, from more technical sessions, to more design and user interaction centric talks. So there is definitely something for everyone. </p>
<h2>I&#8217;ll be there too &#038; have something up my sleves</h2>
<p>Yap, i&#8217;m getting the chance to talk at <a href="http://gotoandski.com/" target="_blank">gotoAndSki();</a> as well. I&#8217;ll be talking about advanced Flash/Flex Accessibility Techniques and introduce a small but quite powerful Library i&#8217;ve been working on, that will simplify Accessibility implementations in your Applications/Games/whatever. By the way, just because i say it&#8217;s advanced, doesn&#8217;t mean that only experts will profit from it. Infact i&#8217;ll make sure that everyone will walk out with the same knowledge that i have built up, so that&#8217;s definitely something you might not want to miss out on ;)</p>
<h2>See you there</h2>
<p>I&#8217;m definitely looking forward to some snow action, great sessions and hanging out with old and hopefully new friends. So get your tickets now, there aren&#8217;t many left and the number of participants is limited to keep a nice and enjoyable atmosphere for everyone. </p>
<p>Head over to the <a href="http://gotoandski.com/" target="_blank">gotoAndSki(); site</a> to ensure you still get a ticket &#8230; right now! ;)</p>
<div class="shr-publisher-615"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><br/><div class='shareaholic-like-buttonset' style='float:none;height:30px; padding-left: 30px;'><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2011%2F01%2Fspeaking-at-gotoandski%2F'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2011%2F01%2Fspeaking-at-gotoandski%2F' data-shr_title='Speaking+at+gotoAndSki%28%29%3B'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2011%2F01%2Fspeaking-at-gotoandski%2F' data-shr_title='Speaking+at+gotoAndSki%28%29%3B'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2011%2F01%2Fspeaking-at-gotoandski%2F' data-shr_title='Speaking+at+gotoAndSki%28%29%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.swfjunkie.com/2011/01/speaking-at-gotoandski/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting started: Blackberry PlayBook Development Setup</title>
		<link>http://blog.swfjunkie.com/2010/10/getting-started-blackberry-playbook-development-setup/</link>
		<comments>http://blog.swfjunkie.com/2010/10/getting-started-blackberry-playbook-development-setup/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 23:33:57 +0000</pubDate>
		<dc:creator>Sandro</dc:creator>
				<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[BlackBerry]]></category>
		<category><![CDATA[PlayBook]]></category>
		<category><![CDATA[RIM]]></category>
		<category><![CDATA[Tablets]]></category>

		<guid isPermaLink="false">http://blog.swfjunkie.com/?p=566</guid>
		<description><![CDATA[Oh boy oh boy, aren&#8217;t these exciting times to be a developer? :) So, yesterday &#8211; on time for Adobe MAX 2010 &#8211; RIM released the BlackBerry Tablet OS SDK Beta for Adobe® AIR. Alongside the SDK they also released the BlackBerry® PlayBook™ Simulator Beta. Both come in a Windows or Mac flavor. Why is [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><a href="#"><img src="http://blog.swfjunkie.com/wp-content/uploads/2010/10/blackberry_playbook.jpg" alt="A promotional picture of the RIM Blackberry PlayBook" title="The RIM Blackberry PlayBook, isn&#039;t it lovely? :)" width="609" height="240" class="aligncenter size-full wp-image-568" /></a></p>
<p>Oh boy oh boy, aren&#8217;t these exciting times to be a developer? :)</p>
<p>So, yesterday &#8211; on time for Adobe MAX 2010 &#8211; RIM <a href="http://na.blackberry.com/eng/developers/tablet/" target="_blank">released</a> the BlackBerry Tablet OS SDK Beta for Adobe® AIR. Alongside the SDK they also released the BlackBerry® PlayBook™ Simulator Beta. Both come in a Windows or Mac flavor.</p>
<p>Why is this so exciting for us Flash Platform Developers? Well, you apparently missed the announcement at yesterdays Adobe MAX Day 1 Keynote. Check out the video:</p>
<p><object width="609" height="367"><param name="movie" value="http://www.youtube.com/v/tqOs58aZ3LE?fs=1&amp;hl=en_US&amp;rel=0&amp;hd=1&amp;color1=0x3a3a3a&amp;color2=0x999999"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/tqOs58aZ3LE?fs=1&amp;hl=en_US&amp;rel=0&amp;hd=1&amp;color1=0x3a3a3a&amp;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="609" height="367"></embed></object></p>
<p>See what they did there? Yup, Flash/AIR is a core functionality of the entire system. Now excuse me if i go all capslock on you all but HOW FREAKING COOL IS THAT!? :)</p>
<p><br/></p>
<h2>Now get the tools</h2>
<p>So now that i hopefully have wet your appetite, how about we check all the new toys out right away. Thanks to RIM and their simulator we can actually do that quite easily. Head over to their <a href="http://na.blackberry.com/eng/developers/tablet/" target="_blank">developer website for the tablet os</a> and download the simulator and the SDK for the OS you require.</p>
<p>Since i&#8217;m a windows user, my instructions will be very windows centric, infact, they will be Windows 7 64-bit centric, since i encountered quite a lot of problems on the way to PlayBook-bliss.</p>
<p><br/><br />
<h2>Setup / Installation</h2>
<h3>Installing the Simulator</h3>
<p>If you are running a 32-bit Windows System go ahead and run the installers, they should work flawlessly and i would guess the same is the case for the Mac installs. If you run Windows on a 64-bit sytem though, you will be greeted by a not-so-friendly screen right at the start of your journey:</p>
<p><img src="http://blog.swfjunkie.com/wp-content/uploads/2010/10/no64bit_support_win.jpg" alt="" title="No 64-bit support for the Blackberry PlayBook installers" width="609" height="240" class="aligncenter size-full wp-image-586" /> </p>
<p>The Problem (i&#8217;m not quite sure actually) is either that the installer is not 64-bit compatible or since i noticed it uses Java it might just not support the 64-bit Java version. Either way, i haz a way around this little problem.</p>
<p>As any good windows user should, i would hope that you have <a href="http://www.7-zip.org/" target="_blank">7-zip</a> installed, simply because it is the best archiving / compression tool on windows AND it&#8217;s open source. So as it turns out, with 7-zip you can extract the content from the installer. </p>
<p>Now &#8211; what we want to extract from the installer is a <a href="http://en.wikipedia.org/wiki/ISO_image" target="_blank">ISO Image</a> which we will need to setup the Simulator. The file in question is &#8220;<b>InstallerData\Disk1\InstData\Resource1.zip</b>&#8221; . It&#8217;s another zip which you have to extract, that contains two folders that in turn contains the image, which is called &#8220;<b>BlackBerryPlayBookSimulator.iso</b>&#8221; .</p>
<p>Great! Now that you have the image, we can finally setup the simulator, which actually is a virtual machine. For that, you can follow the <a href="http://docs.blackberry.com/en/developers/deliverables/21877/Configure_the_BlackBerry_PlayBook_simulator_1347134_11.jsp" target="_blank">installation instructions</A> posted at the developer site by RIM themselfs &#8211; make sure to come back ok ? :P</p>
<h3>Installing the SDK</h3>
<p>So by now you should have a running instance of the PlayBook OS which is most likely looking something like this:</p>
<p><img src="http://blog.swfjunkie.com/wp-content/uploads/2010/10/playbook_emu.jpg" alt="" title="PlayBook Virtual Machine Screenshot" width="609" height="240" class="aligncenter size-full wp-image-597" /><br />
<sup>Pretty eh?</sup></p>
<p>Now, the 64-bit problem also applies to the SDK Installer of course. Now this one was a little bit trickier since the installer actually generates the SDK for you. But with a little trickery that problem won&#8217;t stop us here either. </p>
<p>I have generated the SDK with AIR 2.5 integrated and uploaded it for your convenience to <a href="http://www.mediafire.com/?st0g4m7l876xgv3" target="_blank">mediafire</a> so you can <a href="http://www.mediafire.com/?st0g4m7l876xgv3" target="_blank">download it from there</a>. &#8211; at the time of this writing, the version of the blackberry tablet sdk is <b>0.9.0</b></p>
<p>This SDK is (mostly) like any other Flex SDK. So if you use Flash Builder, you can go to the <b>Preferences > Flash Builder > Installed Flex SDKs</b> and <b>add</b> the SDK to the existing ones.</p>
<p><img src="http://blog.swfjunkie.com/wp-content/uploads/2010/10/fb_blackberry_sdk.jpg" alt="" title="Add the Blackberry SDK to your existing SDKs" width="609" height="240" class="aligncenter size-full wp-image-605" /></p>
<p>That&#8217;s it! You have set up your environment for developing for the Blackberry PlayBook. In the next article, we will look into some more specifics of this SDK. </p>
<p>I leave you at this point with the link to the <a href="http://docs.blackberry.com/en/developers/subcategories/?userType=21&#038;category=Adobe+AIR+Development+Guides+and+API+Reference" target="_blank">Blackberry Adobe AIR Development Guides and API Reference</a> where you will find more information on setting up and creating your first project.</p>
<p>Hope this was of any help and make sure to come back for the next article on the Blackberry PlayBook. I&#8217;m sure we will see a lot more of it in the near future :)</p>
<div class="shr-publisher-566"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><br/><div class='shareaholic-like-buttonset' style='float:none;height:30px; padding-left: 30px;'><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F10%2Fgetting-started-blackberry-playbook-development-setup%2F'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F10%2Fgetting-started-blackberry-playbook-development-setup%2F' data-shr_title='Getting+started%3A+Blackberry+PlayBook+Development+Setup'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F10%2Fgetting-started-blackberry-playbook-development-setup%2F' data-shr_title='Getting+started%3A+Blackberry+PlayBook+Development+Setup'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F10%2Fgetting-started-blackberry-playbook-development-setup%2F' data-shr_title='Getting+started%3A+Blackberry+PlayBook+Development+Setup'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.swfjunkie.com/2010/10/getting-started-blackberry-playbook-development-setup/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>My Flash on the Beach 2010 Experience</title>
		<link>http://blog.swfjunkie.com/2010/10/my-flash-on-the-beach-2010-experience/</link>
		<comments>http://blog.swfjunkie.com/2010/10/my-flash-on-the-beach-2010-experience/#comments</comments>
		<pubDate>Mon, 04 Oct 2010 14:34:11 +0000</pubDate>
		<dc:creator>Sandro</dc:creator>
				<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[FOSDR]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://blog.swfjunkie.com/?p=536</guid>
		<description><![CDATA[So i&#8217;ve returned from this years Flash on the Beach Conference in Brighton and what an outstanding experience it was! Not only was it great to meet up and network with all the great people in the community but for me the obvious highlight was to participate in this years elevator pitches. Day 1 The [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><a href="http://blog.swfjunkie.com/wp-content/uploads/2010/10/fotb2010banner.jpg"><img src="http://blog.swfjunkie.com/wp-content/uploads/2010/10/fotb2010banner.jpg" alt="" title="fotb2010banner" width="609" height="240" class="aligncenter size-full wp-image-537" /></a><br />
So i&#8217;ve returned from this years Flash on the Beach Conference in Brighton and what an outstanding experience it was!</p>
<p>Not only was it great to meet up and network with all the great people in the community but for me<br />
the obvious highlight was to participate in this years elevator pitches.</p>
<h2>Day 1</h2>
<p>The Conference was kicked off by Adobe delivering the Keynote with a bang by introducing a new feature that will make its way to the next Flash Player iteration. This feature will dramatically improve video playback in the flash player and thereby keep flash relevant in delivering high quality videos. You can read up on it over at <a href="http://www.bytearray.org/?p=2195" target="_blank">Thibault Imberts Blog</a>.</p>
<p>Of course Adobe will be keeping quiet until MAX to reveil more breathtaking features but the future for flash sure looks promising.</p>
<p>I next headed to <a href="http://gskinner.com/blog/" target="_blank">Grant Skinners Session</a>, which he titled: &#8220;ADHD FTW, LOL!!!&#8221; . A great session that reminds us to set some time aside to play and experiment which can lead to fantastic (and of course fun) results like <a href="http://vimeo.com/12752382" target="_blank">Androideroids</a> or the <a href="http://vimeo.com/12574396" target="_blank">Android Wireless Slot Car Gas Pedal</a>.</p>
<p>Next up was <a href="http://blog.andre-michelle.com/" target="_blank">Andre Michelles</a> great audio session &#8220;Pulsatile Crackle&#8221; in which he presented us great ways to use physics for sound sequencing. As expected his session was incredibly inspiring to me as an audiophile myself. He also announced the <a href="http://code.google.com/p/tonfall/" target="_blank">Tonfall Framework</a> which i personally look forward to using.</p>
<p>The last session i had a chance to catch for that day &#8211; because i had to continue preparation for my elevator pitch &#8211; was of course <a href="" target="_blank">Mario Klingemanns</a> last talk before he takes a break from the speaker circuit, which he entitled: &#8220;So Long, and Thanks for All the Flash&#8221;. Marios talk was a great mix of code snippets that will allow you to easily spice  bitmaps and about his current obsession of creating a jigsaw puzzle solver written in flash. Absolutely stunning and i can&#8217;t wait to see the end product :).</p>
<p>This wraps up my first day since afterwards i had to invest my time to actually finish my preparations for my elevator pitch and John and his awesome crew took us in, to go through a first rehearsal of our pitches.</p>
<h2>Day 2</h2>
<p>For most people the day started at 9am with the <a href="http://www.flashonthebeach.com/sessions/index.php?pageid=2999" target="_blank">elevator pitches</a>. But for me the day started nearly 2 hours earlier as we (the elevator pitchers) had to do a final rehearsal before actually doing it live.</p>
<p>First of, we all had two rehearsal of which both went horribly wrong for me. During the first try-out my pitch was too long so i had to cut it by half and on the morning before we actually had to do it live, my pitch went horribly wrong because of technical difficulties. But then when it counted, everything worked as expected and i had an absolutely amazing time. Here is the video of my pitch in which i presented the <a href="http://fosdr.swfjunkie.com" target="_blank">Flash Open Source Desktop Runtime</a> for the first time to the public:</p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/3d5NDooLRD4?fs=1&amp;hl=en_US&amp;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/3d5NDooLRD4?fs=1&amp;hl=en_US&amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p>I highly recommend this experience to anyone who wants to carry some project of his out to the public. Doing the elevator pitch was incredibly scary but also highly rewarding. It is quite an emotional joyride between sheer panic and incredibly joy once you get your applause at the end of your talk. I also have to admit that doing a 3 minutes presentation had to be the hardest thing i have ever done. The incredibly tight timeframe leaves no room for any errors or second guesses. A terrifying yet incredibly adrenaline pumping experience. And do not underestimate the psychological pressure that talking infront of 800+ people gives you :). Eventhough funny enough, rehearsing infront of John was way harder than actually presenting infront of the entire crowd :)</p>
<p><a href="http://blog.swfjunkie.com/wp-content/uploads/2010/10/fotb2010.jpg"><img src="http://blog.swfjunkie.com/wp-content/uploads/2010/10/fotb2010.jpg" alt="Me presenting the Flash Open Source Desktop Runtime at FOTB" title="fotb2010 evelator pitch, picture taken by oyvindnordhagen" width="609" height="240" class="aligncenter size-full wp-image-548" /></a></p>
<p>At this point i would like to extend my thanks to <a href="http://twitter.com/fotb/" target="_blank">John Davey</a> for giving us this great opportunity and the stage to express ourselfs and of course for organizing this fantasic event. My thanks go also to the entire crew who oversaw it all: Andy, Chris and Tal, and the crew Rich and Neil. They made sure that us pitchers got thrown to the wolves and got dragged back out without any technical hiccups or passing out of sheer panic :)</p>
<p>I also would like to extend my thanks to <a href="http://ubelly.com/" target="_blank">underbelly</a> for sketching us elevator pitchers. I got a really good laugh at the fact that they managed to catch my anti-apple essence in that picture perfectly :)</p>
<p><a href="http://blog.swfjunkie.com/wp-content/uploads/2010/10/5033577368_8b4376dab2_b.jpg"><img src="http://blog.swfjunkie.com/wp-content/uploads/2010/10/5033577368_8b4376dab2_b-300x225.jpg" alt="" title="5033577368_8b4376dab2_b" width="300" height="225" class="aligncenter size-medium wp-image-550" /></a></p>
<p>The rest of the day kinda flew by on me after the elevator pitches and all the great feedback i have gotten from people. At this point THANK YOU ALL for the kind words, i appreciate it highly. </p>
<p>Of course i couldn&#8217;t miss out on <a href="http://blog.joa-ebert.com/" target="_blank">Joa Eberts</a> session which he entitled: &#8220;1 1 7 11 21&#8243; &#8211; A great session about his work on Apparat, JITB and all the other nice little tools that Joa has been working on. I probably should mention that the highlight definitely was Joa showing his OpenGL implementation within JITB which inspired me to consider bringing OpenGL functionality to the <a href="http://fosdr.swfjunkie.com" target="_blank">Flash Open Source Desktop Runtime</a> in the foreseable future.</p>
<p>I ended the second day by attending the &#8220;Inspired Session&#8221; held by Brendan Dawes, entitled: &#8220;Makers of Things&#8221;. Which essentially can be summarized in this picture:</p>
<p><a href="http://www.flickr.com/photos/marcthiele/4624386633/" title="Brendan + Action by marc.thiele, on Flickr"><img src="http://farm5.static.flickr.com/4066/4624386633_7a894d930c_z.jpg" width="640" height="427" alt="Brendan + Action" /></a></p>
<h2>Day 3</h2>
<p>The third day sadly went by too quickly. First of all we kinda slept in because we partied a wee bit too much and we sat down with the guys of the Milan User Group to discuss some projects. But there were two session i definitely did not want to miss out on. The first one i wanted to attend was <a href="http://www.unitzeroone.com/blog/" target="_blank">Ralph Hauwerts</a> awesome session which he entitled: &#8220;UnitZeroOne :: The Discontinuity&#8221; . Ralph astonished the audience once more with awesome visuals and great approaches. I especially loved that he mentioned the awesomness that is the Amiga Demoscene. He once again showed us his oh so yummy <a href="http://vimeo.com/14398011" target="_blank">Distance Field Demo</a> and his recent work into auto-generating volumetric clouds which looks absolutely astonishing. </p>
<p>Last but not least i attended the ending session which was given by Jared Tarbell who is an incredibly inspirational person and has done great visual work in processing as well as actionscript. One of my all time favorite has to be <a href="http://www.complexification.net/gallery/machines/substrate/" target="_blank">Substrate</a>. Jared definitely underlined the general vibe of the conference that you should absolutely follow your ideas and put them out there, because only good things can come from it (at worst, nobody can get hurt :P ).</p>
<h2>Wrapping up</h2>
<p>I was very fortunate to have had the joy and pleasure to get to know / hang out / discuss / have a drink with many talented people, of which i admire many like, Marc Thiele, Jens C Brynildsen, Chris Pelsor, Thibault Imbert, Ralph Hauwert, Andre Michelle, Mario Klingemann and Jared Tarbell only to name a few but great names within the grand melting pot that we call the flash community. I also got the chance to meet many new people, forge new friendships and i am looking forward to see you all again at one of the next conferences. </p>
<p>It was an absolute delight to have attended FOTB for the first time and i&#8217;m looking forward to attending it again next year. Brighton you have been a great host and thanks for all the Flash.</p>
<p>A big shout out also to the Italian Crew representing at FOTB, you guys were awesome! Here&#8217;s a picture of me proudly wearing the <a href="http://flashplatformgeeks.com/" target="_blank">FlashPlatformGeeks</a> Glasses after attending Peter Elsts Session about the Litl Webbook.<br />
<center><a href="http://www.flickr.com/photos/lucamezzalira/5048363869/" title="DSC_0627 by luca mezzalira, on Flickr"><img src="http://farm5.static.flickr.com/4149/5048363869_ba0df2661b_m.jpg" width="161" height="240" alt="DSC_0627" /></a></center></p>
<p>Last but definitely not least, i would like to extend my outmost gratitude to my employer <a href="http://www.liip.ch/" target="_blank">Liip</a> for letting me attend FOTB and infact paying for all the traveling costs and accommodations. How awesome is that?! They even went so far as paying extra just so i would travel eco friendly by using the train. Much respect for this effort!</p>
<div class="shr-publisher-536"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><br/><div class='shareaholic-like-buttonset' style='float:none;height:30px; padding-left: 30px;'><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F10%2Fmy-flash-on-the-beach-2010-experience%2F'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F10%2Fmy-flash-on-the-beach-2010-experience%2F' data-shr_title='My+Flash+on+the+Beach+2010+Experience'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F10%2Fmy-flash-on-the-beach-2010-experience%2F' data-shr_title='My+Flash+on+the+Beach+2010+Experience'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F10%2Fmy-flash-on-the-beach-2010-experience%2F' data-shr_title='My+Flash+on+the+Beach+2010+Experience'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.swfjunkie.com/2010/10/my-flash-on-the-beach-2010-experience/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Tweetr Tutorials: Pinless OAuth in AIR</title>
		<link>http://blog.swfjunkie.com/2010/08/tweetr-tutorials-pinless-oauth-in-air/</link>
		<comments>http://blog.swfjunkie.com/2010/08/tweetr-tutorials-pinless-oauth-in-air/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 22:41:31 +0000</pubDate>
		<dc:creator>Sandro</dc:creator>
				<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Examples]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[Tweetr]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://blog.swfjunkie.com/?p=451</guid>
		<description><![CDATA[With Twitters Basic Authentications deprecation starting today and the latest release of the Tweetr Library, it is time to give you a heads up on how to integrate OAuth without having to use the PIN Method. First of all, make sure to download the AIR Example used in this Tutorial. The zip contains a Flash [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>With <a href="http://groups.google.com/group/twitter-api-announce/browse_thread/thread/c03fa2b1ae90d2a9/a56592abbce575d9?show_docid=a56592abbce575d9" target="_blank">Twitters Basic Authentications deprecation starting today</a> and the <a href="http://blog.swfjunkie.com/2010/08/tweetr-v1-0b3-out/" target="_blank">latest release of the Tweetr Library</a>, it is time to give you a heads up on how to integrate OAuth without having to use the <a href="http://blog.swfjunkie.com/2009/12/tweetr-tutorials-part-2-using-oauth-in-tweetr/" target="_blank">PIN Method</a>.</p>
<p>First of all, make sure to download the <a href="http://blog.swfjunkie.com/wp-content/uploads/2010/08/tweetr_air_example.zip">AIR Example</a> used in this Tutorial. The zip contains a Flash Builder 4 Project Folder as well as a Flex Project FXP File so you can import the code easily if wanted. If you don&#8217;t have Flash Builder 4 you can always just look at the code in the src folder within the zip. As you will notice, the example uses the awesome <a href="http://code.google.com/p/doomsdayconsole/" target="_blank">doomsdayconsole</a>. The code for it is not included in the example but can be retrieved from its <a href="http://code.google.com/p/doomsdayconsole/" target="_blank">googlecode site</a>. You will also need the <a href="http://code.google.com/p/as3crypto/" target="_blank">AS3Crypto Library</a> which also is not included in the example.</p>
<p>Without any further ado, here are the steps neccessary to get pinless OAuth working.</p>
<p>Let&#8217;s take a look at the important parts of <strong>tweetrAIR.as</strong>:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;">oauth = <span style="color: #0033ff; font-weight: bold;">new</span> OAuth<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
oauth<span style="color: #000066; font-weight: bold;">.</span>consumerKey = <span style="color: #990000;">&quot;YOUR_CONSUMER_KEY&quot;</span><span style="color: #000066; font-weight: bold;">;</span>
oauth<span style="color: #000066; font-weight: bold;">.</span>consumerSecret = <span style="color: #990000;">&quot;YOUR_CONSUMER_SECRET&quot;</span><span style="color: #000066; font-weight: bold;">;</span>
oauth<span style="color: #000066; font-weight: bold;">.</span>callbackURL = <span style="color: #990000;">&quot;http://your.callback.url&quot;</span><span style="color: #000066; font-weight: bold;">;</span>
oauth<span style="color: #000066; font-weight: bold;">.</span>pinlessAuth = <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span> 
&nbsp;
oauth<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span>OAuthEvent<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">COMPLETE</span><span style="color: #000066; font-weight: bold;">,</span> handleOAuthEvent<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
oauth<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span>OAuthEvent<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ERROR</span><span style="color: #000066; font-weight: bold;">,</span> handleOAuthEvent<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">rect</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Rectangle</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Rectangle</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">50</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">50</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">780</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">500</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
htmlLoader = HTMLLoader<span style="color: #000066; font-weight: bold;">.</span>createRootWindow<span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #0033ff; font-weight: bold;">null</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #004993;">rect</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
oauth<span style="color: #000066; font-weight: bold;">.</span>htmlLoader = htmlLoader<span style="color: #000066; font-weight: bold;">;</span>
oauth<span style="color: #000066; font-weight: bold;">.</span>getAuthorizationRequest<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></pre></td></tr></table></div>

<p>As you see there&#8217;s not much to do configuration wise. First of all, we create a new <code>OAuth</code> instance and then assign our consumer key and consumer secret which we get from twitter (<em>line 1-3</em>).</p>
<p>The important parts here are the <code>callbackURL</code> and <code>pinlessAuth</code> at <em>line 4 &amp; 5</em>. You need to set the <code>pinlessAuth</code> Boolean to <code>true</code> in order to enable (obviously) pinless authentication and you need to define a callback url for which your AIR app will be listening for. The callback url can be anything on the internet that does not redirect any further, for example &#8220;http://google.ch&#8221; or &#8220;http://yourdomain.com/static.html&#8221;. Twitter will append some GET parameters to this url for which your OAuth instance will be listening for.</p>
<p>Pinless Authentication for AIR Desktop Applications requires you to pass a <code>HTMLLoader</code> instance to your OAuth instance (<em>see line 11 &amp; 12</em>). Once you have done that, you can call <code>getAuthorizationRequest</code> to start the entire process.</p>
<p>The <code>OAuthEvent</code> Handler Method will assign the oauth instance to twitter once an <code>OAuthEvent.COMPLETE</code> event is received, meaning that authentication was successful:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> handleOAuthEvent<span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">:</span>OAuthEvent<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">type</span> == OAuthEvent<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">COMPLETE</span><span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #009900; font-style: italic;">// removes the authentication window</span>
        htmlLoader<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">stage</span><span style="color: #000066; font-weight: bold;">.</span>nativeWindow<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
        tweetr<span style="color: #000066; font-weight: bold;">.</span>oAuth = oauth<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
        <span style="color: #009900; font-style: italic;">// prints username, user id and the final tokens</span>
        <span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>oauth<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">toString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
    <span style="color: #000000;">&#125;</span>
    <span style="color: #0033ff; font-weight: bold;">else</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;ERROR: &quot;</span><span style="color: #000066; font-weight: bold;">+</span>event<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">text</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>And that&#8217;s it. From here on out you can call any tweetr method you want. Here&#8217;s a short video of the example code running:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="609" height="457" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=14186726&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=DBF232&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="609" height="457" src="http://vimeo.com/moogaloop.swf?clip_id=14186726&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=DBF232&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><sub><a href="http://labs.swfjunkie.com/vimeoplayer.php?id=14186726" target="_blank"><strong>WATCH IN 800 x 600</strong></a></sub></p>
<div class="shr-publisher-451"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><br/><div class='shareaholic-like-buttonset' style='float:none;height:30px; padding-left: 30px;'><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F08%2Ftweetr-tutorials-pinless-oauth-in-air%2F'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F08%2Ftweetr-tutorials-pinless-oauth-in-air%2F' data-shr_title='Tweetr+Tutorials%3A+Pinless+OAuth+in+AIR'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F08%2Ftweetr-tutorials-pinless-oauth-in-air%2F' data-shr_title='Tweetr+Tutorials%3A+Pinless+OAuth+in+AIR'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F08%2Ftweetr-tutorials-pinless-oauth-in-air%2F' data-shr_title='Tweetr+Tutorials%3A+Pinless+OAuth+in+AIR'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.swfjunkie.com/2010/08/tweetr-tutorials-pinless-oauth-in-air/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Tweetr Tutorials: Pinless OAuth in AS3</title>
		<link>http://blog.swfjunkie.com/2010/08/tweetr-tutorials-pinless-oauth-in-as3/</link>
		<comments>http://blog.swfjunkie.com/2010/08/tweetr-tutorials-pinless-oauth-in-as3/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 22:41:17 +0000</pubDate>
		<dc:creator>Sandro</dc:creator>
				<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Examples]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[Tweetr]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://blog.swfjunkie.com/?p=475</guid>
		<description><![CDATA[With Twitters Basic Authentication deprecation starting today and the latest release of the Tweetr Library, it is time to give you a heads up on how to integrate OAuth without having to use the PIN Method. First of all, make sure to download the AS3 Example used in this Tutorial. The zip contains a Flash [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>With <a href="http://groups.google.com/group/twitter-api-announce/browse_thread/thread/c03fa2b1ae90d2a9/a56592abbce575d9?show_docid=a56592abbce575d9" target="_blank">Twitters Basic Authentication deprecation starting today</a> and the <a href="http://blog.swfjunkie.com/2010/08/tweetr-v1-0b3-out/" target="_blank">latest release of the Tweetr Library</a>, it is time to give you a heads up on how to integrate OAuth without having to use the <a href="http://blog.swfjunkie.com/2009/12/tweetr-tutorials-part-2-using-oauth-in-tweetr/" target="_blank">PIN Method</a>.</p>
<p>First of all, make sure to download the <a href="http://blog.swfjunkie.com/wp-content/uploads/2010/08/tweetr_as3_example.zip">AS3 Example</a> used in this Tutorial. The zip contains a Flash Builder 4 Project Folder. If you don&#8217;t have Flash Builder 4 you can always just look at the code in the src folder within the zip. As you will notice, the example uses the awesome <a href="http://code.google.com/p/doomsdayconsole/" target="_blank">doomsdayconsole</a>. The code for it is not included in the example but can be retrieved from its <a href="http://code.google.com/p/doomsdayconsole/" target="_blank">googlecode site</a>. You will also need the <a href="http://code.google.com/p/as3crypto/" target="_blank">AS3Crypto Library</a> which also is not included in the example.</p>
<h3>The Actionscript</h3>
<p>The Pinless OAuth process in the library uses the ExternalInterface to communicate with the Webpage<br />
that embeds your flash application. Let&#8217;s take a look at the important bits of <strong>tweetrAS3.as</strong>:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;">oauth = <span style="color: #0033ff; font-weight: bold;">new</span> OAuth<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
oauth<span style="color: #000066; font-weight: bold;">.</span>consumerKey = <span style="color: #990000;">&quot;YOUR_CONSUMER_KEY&quot;</span><span style="color: #000066; font-weight: bold;">;</span>
oauth<span style="color: #000066; font-weight: bold;">.</span>consumerSecret = <span style="color: #990000;">&quot;YOUR_CONSUMER_SECRET&quot;</span><span style="color: #000066; font-weight: bold;">;</span>
oauth<span style="color: #000066; font-weight: bold;">.</span>callbackURL = <span style="color: #990000;">&quot;http://tweetr.swfjunkie.com/dev/verified.html&quot;</span><span style="color: #000066; font-weight: bold;">;</span>
oauth<span style="color: #000066; font-weight: bold;">.</span>pinlessAuth = <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
oauth<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span>OAuthEvent<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">COMPLETE</span><span style="color: #000066; font-weight: bold;">,</span> handleOAuthEvent<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
oauth<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span>OAuthEvent<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ERROR</span><span style="color: #000066; font-weight: bold;">,</span> handleOAuthEvent<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
oauth<span style="color: #000066; font-weight: bold;">.</span>getAuthorizationRequest<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></pre></td></tr></table></div>

<p>As you see there&#8217;s not much to do configuration wise. First of all, we create a new <code>OAuth</code> instance and then assign our consumer key and consumer secret which we get from twitter (<em>line 1-3</em>).</p>
<p>The important parts here are the <code>callbackURL</code> and <code>pinlessAuth</code> at <em>line 4 &amp; 5</em>. You need to set the <code>pinlessAuth</code> Boolean to <code>true</code> in order to enable (obviously) pinless authentication and you need to define a callback url which will be opened once authentication has succeeded on twitters side. Last but not least we define some eventlisteners and call <code>getAuthorizationRequest</code> to start the entire process.</p>
<h3>The HTML/Javascript</h3>
<p>As i said earlier, the library uses the ExternalInterface to communicate with the browser back &#038; forth, thereby we need to add a JS File to our HTML that embeds the Flash and some little snippet of JS Code:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
    ... 
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">language</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;JavaScript&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;js/tweetrOAuth.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
    ... 
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
&nbsp;
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;flashContentDiv&quot;</span>&gt;</span>Your Flash might be in here..<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
&nbsp;
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;</span>
        OAuth.setFlashElement(&quot;myFlashID&quot;);
    <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></pre></td></tr></table></div>

<p>As you see you have to include the <strong><code>tweetrOAuth.js</code></strong> file and (optimally at the end of your html) tell the OAuth Javasrcipt the ID of your flash element so that javascript can communicate with it by calling <code>OAuth.setFlashElement</code>.</p>
<p>When your Flash application calls <code>getAuthorizationRequest</code> from your oauth instance, it&#8217;s going to make an ExternalInterface call to the embedded javascript file which will open a popup window for you to be able to authorize the application. Once this is done, it will redirect to the callback url you have defined in your actionscript code. This Webpage should look something like this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
    ...
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">language</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;JavaScript&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;js/tweetrOAuth.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
    ...
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
    ...
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;</span>
        OAuth.verify();
    <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
    ...
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></pre></td></tr></table></div>

<p>As you see, once again we integrate our <strong><code>tweetrOAuth.js</code></strong> file. This time we call <code>OAuth.verify</code> since we should have received the required tokens from twitter back to our callback url. These tokens will be extracted and send back to our Flash application via ExternalInterface and the popup-window should be closed automatically.</p>
<p>And that&#8217;s it. When the javascript passes the token, your oauth instance will do the rest and eventually trigger an <code>OAuthEvent.COMPLETE</code> event in which you can pass your fully authorized OAuth instance to your tweetr instance, like so:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> handleOAuthEvent<span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">:</span>OAuthEvent<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">type</span> == OAuthEvent<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">COMPLETE</span><span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        tweetr<span style="color: #000066; font-weight: bold;">.</span>oAuth = oauth<span style="color: #000066; font-weight: bold;">;</span>
        <span style="color: #009900; font-style: italic;">// prints username, user id and the final tokens</span>
        <span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>oauth<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">toString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
    <span style="color: #000000;">&#125;</span>
    <span style="color: #0033ff; font-weight: bold;">else</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;ERROR: &quot;</span><span style="color: #000066; font-weight: bold;">+</span>event<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">text</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Here&#8217;s a short video of the example code running:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="609" height="457" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=14191846&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=DBF232&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="609" height="457" src="http://vimeo.com/moogaloop.swf?clip_id=14191846&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=DBF232&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><sub><a href="http://labs.swfjunkie.com/vimeoplayer.php?id=14191846" target="_blank"><strong>WATCH IN 800 x 600</strong></a></sub></p>
<div class="shr-publisher-475"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><br/><div class='shareaholic-like-buttonset' style='float:none;height:30px; padding-left: 30px;'><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F08%2Ftweetr-tutorials-pinless-oauth-in-as3%2F'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F08%2Ftweetr-tutorials-pinless-oauth-in-as3%2F' data-shr_title='Tweetr+Tutorials%3A+Pinless+OAuth+in+AS3'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F08%2Ftweetr-tutorials-pinless-oauth-in-as3%2F' data-shr_title='Tweetr+Tutorials%3A+Pinless+OAuth+in+AS3'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F08%2Ftweetr-tutorials-pinless-oauth-in-as3%2F' data-shr_title='Tweetr+Tutorials%3A+Pinless+OAuth+in+AS3'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.swfjunkie.com/2010/08/tweetr-tutorials-pinless-oauth-in-as3/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>Tweetr v1.0b3 out!</title>
		<link>http://blog.swfjunkie.com/2010/08/tweetr-v1-0b3-out/</link>
		<comments>http://blog.swfjunkie.com/2010/08/tweetr-v1-0b3-out/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 22:41:02 +0000</pubDate>
		<dc:creator>Sandro</dc:creator>
				<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Tweetr]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Update]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://blog.swfjunkie.com/?p=503</guid>
		<description><![CDATA[So here we are again, time for another beta release, this one comes in time for twitters start on deprecating basic authentication. What&#8217;s new Pinless OAuth for AIR (Desktop) and pure AS3 (Web) Javascript/HTML Template for Pinless OAuth for Web apps Minor bug fixes You can grab the latest files as usual from the tweetr [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>So here we are again, time for another beta release, this one comes in time for twitters start on <a href="http://groups.google.com/group/twitter-api-announce/browse_thread/thread/c03fa2b1ae90d2a9/a56592abbce575d9?show_docid=a56592abbce575d9" target="_blank">deprecating basic authentication</a>.</p>
<p><br/></p>
<h3>What&#8217;s new</h3>
<ul>
<li>Pinless OAuth for AIR (Desktop) and pure AS3 (Web)</li>
<li>Javascript/HTML Template for Pinless OAuth for Web apps</li>
<li>Minor bug fixes</li>
</ul>
<p>You can grab the latest files as usual from the <a href="http://wiki.swfjunkie.com/tweetr:downloads" target="_blank">tweetr downloads page</a>.</p>
<p><br/></p>
<h3>Notable Changes</h3>
<p>This release marks the first time that we have two different SWC files. The <strong><code>tweetrWEB.swc</code></strong> is meant for Flex / AS3 Applications, while the <strong><code>tweetrAIR.swc</code></strong> is solely meant for Desktop AIR Apps. </p>
<p><strong>It is discouraged to use the source code from this release on since it requires conditional compiling in order to get it working correctly. Use the specific SWC instead. I will continue providing the source code though in zip format.</strong></p>
<p>The Documentation is now valid for all versions of the Library. AIR only methods and properties will be marked as such.</p>
<p><br/></p>
<h3>How to use pinless OAuth</h3>
<p>Glad you asked, i&#8217;ve prepared two tutorials on how to use pinless OAuth:</p>
<ul>
<li><a href="http://blog.swfjunkie.com/2010/08/tweetr-tutorials-pinless-oauth-in-as3/" target="_blank">Pinless OAuth in AS3</a></li>
<li><a href="http://blog.swfjunkie.com/2010/08/tweetr-tutorials-pinless-oauth-in-air/" target="_blank">Pinless OAuth in AIR</a></li>
</li>
</ul>
<p><br/></p>
<h3>What&#8217;s next</h3>
<p>Next release will definitely include the Mobile AIR version. Any further plans are quite open since i have plans on refactoring the library to make it more modular, so you only integrate the bare minimum of what you actually use. Which will benefit mobile versions as of course all other versions as well. If you have any urgent requests of features you would like to see, please let me know via the google groups site.</p>
<p>That&#8217;s it for now, hope you enjoy the pinless freedom you are getting and as always, if you have any questions/suggestions you can post them on the <a href="http://groups.google.com/group/tweetr-as3-library/" target="_blank">google groups site</a> if they are tweetr related. In any other case, leave a comment or contact me via mail or twitter.</p>
<div class="shr-publisher-503"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><br/><div class='shareaholic-like-buttonset' style='float:none;height:30px; padding-left: 30px;'><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F08%2Ftweetr-v1-0b3-out%2F'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F08%2Ftweetr-v1-0b3-out%2F' data-shr_title='Tweetr+v1.0b3+out%21'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F08%2Ftweetr-v1-0b3-out%2F' data-shr_title='Tweetr+v1.0b3+out%21'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F08%2Ftweetr-v1-0b3-out%2F' data-shr_title='Tweetr+v1.0b3+out%21'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.swfjunkie.com/2010/08/tweetr-v1-0b3-out/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Current Tweetr / OAuth Progress</title>
		<link>http://blog.swfjunkie.com/2010/07/current-tweetr-oauth-progress/</link>
		<comments>http://blog.swfjunkie.com/2010/07/current-tweetr-oauth-progress/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 23:06:36 +0000</pubDate>
		<dc:creator>Sandro</dc:creator>
				<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tweetr]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://blog.swfjunkie.com/?p=440</guid>
		<description><![CDATA[I just wanted to share with you the current progress in the Tweetr Library. Since a video says more than a thousand words, here&#8217;s a quick example of the pin-less OAuth authorization process that the library allows now. Using OAuth in Tweetr from Sandro on Vimeo. The technique used is quite simple really. Tweetrs OAuth [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I just wanted to share with you the current progress in the Tweetr Library. Since a video says more than a thousand words, here&#8217;s a quick example of the pin-less OAuth authorization process that the library allows now.</p>
<p><center><br />
<object width="800" height="600"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=13438840&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=1&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=13438840&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=1&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="800" height="600"></embed></object>
<p><a href="http://vimeo.com/13438840">Using OAuth in Tweetr</a> from <a href="http://vimeo.com/user1167580">Sandro</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p></center></p>
<p>The technique used is quite simple really. Tweetrs OAuth uses a ExternalInterface Bridge to communicate with Twitter and the redirect after successful authorization.</p>
<p>If you feel adventurous, feel free to <a href="http://tweetr.swfjunkie.com/dev/dev.html" target="_blank">try the above example yourself</a>.
<p>Since AIR, Web and Mobile versions all require a different approach for pinless authorization, the next release of the library &#8211; for the first time &#8211; will also come in 3 different flavors, regardless of flavor though, the API will be the same to ease development processes.</p>
<p>For a quick look at how OAuth will work for mobile, check out Mark Dohertys <a href="http://www.flashmobileblog.com/2010/07/17/air2-5-stagewebview-demo-oauth-support/" target="_blank">AIR 2.5 StageWebView Demo</a> where he shows off pinless OAuth on an Android Mobile Device.</p>
<p>I would like to extend my thanks to Mark at this point, since thanks to a short-notice debug session over Adobe Connect, i think we both learned pretty quickly that there wasn&#8217;t much to change in the library itself to get Pinless OAuth working :)</p>
<p>I also would like to thank Joe Rheaume (aka <a href="http://twitter.com/Chronotron" target="_blank">@Chronotron</a>) for providing me with his Pinless OAuth Solution. I ended up implementing my own solution because i had already forgotten that i had his approach in my email :) As it seems i ended up doing more or less the same thing as he did without realizing though :). So once again, thanks for that.</p>
<p>There will most likely be another week or two before this new version wil be released as i have a backlog of things that still need to get done before i can release this version. Be sure to keep an eye on <a href="http://public:public@svn.swfjunkie.com/websvn/revision.php?repname=Tweetr&#038;path=%2F&#038;rev=22" target="_blank">SVN</a> though if you want to try out the latest code bits.</p>
<div class="shr-publisher-440"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><br/><div class='shareaholic-like-buttonset' style='float:none;height:30px; padding-left: 30px;'><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F07%2Fcurrent-tweetr-oauth-progress%2F'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F07%2Fcurrent-tweetr-oauth-progress%2F' data-shr_title='Current+Tweetr+%2F+OAuth+Progress'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F07%2Fcurrent-tweetr-oauth-progress%2F' data-shr_title='Current+Tweetr+%2F+OAuth+Progress'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F07%2Fcurrent-tweetr-oauth-progress%2F' data-shr_title='Current+Tweetr+%2F+OAuth+Progress'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.swfjunkie.com/2010/07/current-tweetr-oauth-progress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flash &amp; The Quest for Accessibility &#8211; Part #2</title>
		<link>http://blog.swfjunkie.com/2010/06/flash-accessibility-quest-part2/</link>
		<comments>http://blog.swfjunkie.com/2010/06/flash-accessibility-quest-part2/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 09:38:28 +0000</pubDate>
		<dc:creator>Sandro</dc:creator>
				<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Examples]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tricks]]></category>
		<category><![CDATA[Workflows]]></category>

		<guid isPermaLink="false">http://blog.swfjunkie.com/?p=395</guid>
		<description><![CDATA[Overview Part #2 In this two-part blog post i will cover the technical, as well as overall aspects of implementing accessibility into the EventManager Project. And not just any form of accessibility &#8211; the Game has earned the AA+ Certification from Access For All (their highest certification grade conform to WCAG 2.0). Go here for [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><img src="http://blog.swfjunkie.com/wp-content/uploads/2010/06/flash_acc_header.jpg" title="EventManager" width="609" height="240" class="aligncenter size-full wp-image-397" border="2" /></p>
<h2>Overview Part #2</h2>
<p>In this two-part blog post i will cover the technical, as well as overall aspects of implementing accessibility into the <a href="http://postfinance-eventmanager.ch" target="_blank">EventManager</a> Project. And not just any form of accessibility &#8211; the Game has earned the <a title="Link to Certification Levels by Access4All" href="http://www.access-for-all.ch/ch/zertifizierung/zertifikatsstufen.html" target="_blank">AA+ Certification</a> from <a title="Link to the Website of Access4All" href="http://www.access-for-all.ch/ch/zertifizierung/zertifikatsstufen.html" target="_blank">Access For All</a> (their highest certification grade conform to <a title="Wikipedia entry for WCAG 2.0" href="http://en.wikipedia.org/wiki/Web_Content_Accessibility_Guidelines#WCAG_2.0" target="_blank">WCAG 2.0</a>).<br/><br />
<a href="http://blog.swfjunkie.com/2010/06/flash-accessibility-quest-part1/">Go here for the first blog post on accessibility</a>. This second part will cover all the technically nitty-gritty, blood and tears that went into implementing accessibility for this project. :)<br />
<span id="more-395"></span></p>
<hr />
<br/></p>
<h2>Some Resources First</h2>
<p>Throughout my research and while developing the accessiblity implementation for EventManager i&#8217;ve collected useful resources on the web which i&#8217;m glad i can share with you <a href="http://delicious.com/SinisterDex/accessibility+flash+flex" target="_blank">via my delicious</a>. There are notes for all the links available that will tell you what type of information you will find behind the click.</p>
<p><br/></p>
<h2>Accessibility Introduction</h2>
<p>If you haven&#8217;t worked with accessiblity in Flash or Flex yet, here&#8217;s a short introduction on how it all works.</p>
<p>Flash has it&#8217;s own package responsible for all the accessibility features. This package is situated under <a title="Link to the AS3 Documentation Package" href="http://livedocs.adobe.com/flex/3/langref/flash/accessibility/package-detail.html" target="_blank">flash.accessibility.*</a></p>
<p>Within this package (as of this writing) you will find three classes:</p>
<ul>
<li><a title="Link to the AS3 Documentation" href="http://livedocs.adobe.com/flex/3/langref/flash/accessibility/Accessibility.html" target="_blank">Accessibility</a></li>
<li><a title="Link to the AS3 Documentation" href="http://livedocs.adobe.com/flex/3/langref/flash/accessibility/AccessibilityProperties.html" target="_blank">AccessibilityProperties</a></li>
<li><a title="Link to the AS3 Documentation" href="http://livedocs.adobe.com/flex/3/langref/flash/accessibility/AccessibilityImplementation.html" target="_blank">AccessibilityImplementation</a></li>
</ul>
<p>The <strong>Accessibility</strong> class is a static class that allows you to do three important things. From that class you can check if the user is actually using a screenreader and if it is available or not (<a title="Link to the AS3 Documentation" href="http://livedocs.adobe.com/flex/3/langref/flash/accessibility/Accessibility.html#active" target="_blank">Accessibility.active</a>). It also allows you to make sure that all accessibility properties are updated if you change any of their values (<a title="Link to the AS3 Documentation" href="http://livedocs.adobe.com/flex/3/langref/flash/accessibility/Accessibility.html#updateProperties%28%29" target="_blank">Accessibility.updateProperties()</a>). The third and in my opinion most important bit of this class is the capability to manually submit an Event to the <a title="Microsoft Active Accessibility - Link to Wikipedia Entry" href="http://en.wikipedia.org/wiki/Microsoft_Active_Accessibility" target="_blank">MSAA</a> API (<a title="Link to the AS3 Documentation" href="http://livedocs.adobe.com/flex/3/langref/flash/accessibility/Accessibility.html#sendEvent%28%29" target="_blank">Accessibility.sendEvent()</a>).</p>
<p>The <strong>AccessibilityProperties </strong>class is the place where you define the properties, such as name, description and shortcut that are being presented to accessibility  aids. You can also set some properties that control the behaviour of your object towards screenreaders. AcessibilityProperties can be attached to any type of <a href="http://livedocs.adobe.com/flex/3/langref/flash/display/DisplayObject.html" target="_blank">DisplayObject</a>.</p>
<p>The <strong>AccessibilityImplementation</strong> class, is a bit of a special one. It is the base class in Flash that allows for the implementation of accessibility. This class you will never really use directly, since Adobe advices us not to instantiate it but instead extends <strong>AccImpl</strong> (which again extends from AccessibilityImplementation) in order to create our own implementation for any custom component we might create. The <strong>AccImpl</strong> class exists in two versions, one for <a href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl/accessibility/AccImpl.html" target="_blank"><strong>flash</strong></a> and one for <a href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/accessibility/AccImpl.html?allClasses=1" target="_blank"><strong>flex</strong></a>.</p>
<p><br/></p>
<h2>More Than a Million Words</h2>
<p>Instead of boring you any further with details and long paragraphs of information, i figured it&#8217;s easier to understand how this all works by actually showing you. Enjoy the videos, if the quality is a bit low and you would like them to be sharper, make sure to head over to the vimeo site itself to download the original videos directly from there.</p>
<p><br/></p>
<h2>A Basic Example</h2>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="609" height="457" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=12672524&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=DBF232&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="609" height="457" src="http://vimeo.com/moogaloop.swf?clip_id=12672524&amp;server=vimeo.com&amp;show_byline=1&amp;color=DBF232&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><sub><a href="http://labs.swfjunkie.com/vimeoplayer.php?id=12672524" target="_blank"><strong>WATCH IN 800 x 600</strong></a> | <a href="http://downloads.swfjunkie.com/accessibility/BasicAccExample.zip"><em><strong>DOWNLOAD EXAMPLE SOURCE CODE</strong></em></a> </sub></p>
<p><br/></p>
<h2>A Basic AccessibilityImplementation Example</h2>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="319" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=12673524&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=DBF232&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="425" height="319" src="http://vimeo.com/moogaloop.swf?clip_id=12673524&amp;server=vimeo.com&amp;show_byline=1&amp;color=DBF232&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><sub><a href="http://labs.swfjunkie.com/vimeoplayer.php?id=12673524" target="_blank"><strong>WATCH IN 800 x 600</strong></a> | <a href="http://downloads.swfjunkie.com/accessibility/BasicAccImplExample.zip"><em><strong>DOWNLOAD EXAMPLE SOURCE CODE</strong></em></a> </sub></p>
<p><br/></p>
<h2>The Final EventManager Accessibility Approach</h2>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="319" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=12674937&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=DBF232&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="425" height="319" src="http://vimeo.com/moogaloop.swf?clip_id=12674937&amp;server=vimeo.com&amp;show_byline=1&amp;color=DBF232&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><sub><a href="http://labs.swfjunkie.com/vimeoplayer.php?id=12674937" target="_blank"><strong>WATCH IN 800 x 600</strong></a> | <a href="http://downloads.swfjunkie.com/accessibility/CustomAccImplExample.zip"><em><strong>DOWNLOAD EXAMPLE SOURCE CODE</strong></em></a> </sub></p>
<p><br/></p>
<div class="shr-publisher-395"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><br/><div class='shareaholic-like-buttonset' style='float:none;height:30px; padding-left: 30px;'><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F06%2Fflash-accessibility-quest-part2%2F'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F06%2Fflash-accessibility-quest-part2%2F' data-shr_title='Flash+%26+The+Quest+for+Accessibility+-+Part+%232'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F06%2Fflash-accessibility-quest-part2%2F' data-shr_title='Flash+%26+The+Quest+for+Accessibility+-+Part+%232'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F06%2Fflash-accessibility-quest-part2%2F' data-shr_title='Flash+%26+The+Quest+for+Accessibility+-+Part+%232'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.swfjunkie.com/2010/06/flash-accessibility-quest-part2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Flash &amp; The Quest for Accessibility &#8211; Part #1</title>
		<link>http://blog.swfjunkie.com/2010/06/flash-accessibility-quest-part1/</link>
		<comments>http://blog.swfjunkie.com/2010/06/flash-accessibility-quest-part1/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 09:10:41 +0000</pubDate>
		<dc:creator>Sandro</dc:creator>
				<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tricks]]></category>
		<category><![CDATA[Workflows]]></category>

		<guid isPermaLink="false">http://blog.swfjunkie.com/?p=386</guid>
		<description><![CDATA[Preamble The greater part of last year i was heads-down-busy developing the EventManager Game which i had the pleasure to build at Liip for Postfinance. EventManager is an educational but fun game, that approaches topics such as budgeting, financing and investing in a modern way (read: not boring you to death). Today i want to talk [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><img class="aligncenter size-full wp-image-397" title="em" src="http://blog.swfjunkie.com/wp-content/uploads/2010/06/em.jpg" border="2" alt="" width="619" height="240" /></p>
<h2>Preamble</h2>
<p>The greater part of last year i was heads-down-busy developing the <a href="http://www.postfinance-eventmanager.ch/" target="_blank"> EventManager</a> Game which i had the pleasure to build <a href="http://liip.ch/" target="_blank">at Liip</a> for <a href="http://www.postfinance.ch/" target="_blank">Postfinance</a>. EventManager is an educational but fun game, that approaches topics such as budgeting, financing and investing in a modern way <em>(read: not boring you to death)</em>.</p>
<p>Today i want to talk to you about the new iteration of the game that we just released a couple of weeks ago. What is new you ask? How about: <strong>Accessibility! </strong>And not just any form of accessibility &#8211; the Game has earned the <a title="Link to Certification Levels by Access4All" href="http://www.access-for-all.ch/ch/zertifizierung/zertifikatsstufen.html" target="_blank">AA+ Certification</a> from <a title="Link to the Website of Access4All" href="http://www.access-for-all.ch/ch/zertifizierung/zertifikatsstufen.html" target="_blank">Access For All</a> (their highest certification grade conform to <a title="Wikipedia entry for WCAG 2.0" href="http://en.wikipedia.org/wiki/Web_Content_Accessibility_Guidelines#WCAG_2.0" target="_blank">WCAG 2.0</a>).<br />
<br/></p>
<h2>Overview Part #1</h2>
<p>In this two-part blog post i will cover the technical, as well as overall aspects of this endeavour. This first part will cover a brief history of accessibility within the Flash  Platform and its current state and hopefully useful insight if you are considering to add accessibility to one of your projects.</p>
<h2><span id="more-386"></span></h2>
<hr />
<h2>Accessibility History in Flash</h2>
<p>Thanks to Adobe (and of course Macromedia back then), the Flash   Platform has been sporting accessibility features since Macromedia   released Flash MX back in 2002. For those that remember, this used to be   Flash Player in version 6 and just introduced the Vector Drawing API   (ahh, nostalgia.. but i digress).</p>
<p>Over the years obviously the feature set has vastly improved and  Adobe (rightly so) can be proud of the level of accessibility  that the  Platform has today, since it allows you to:</p>
<ul>
<li>Create your own tab order</li>
<li>Set alternative text (naming &amp; description text)</li>
<li>Set shortcuts</li>
<li>Set element focus (also visually if needed)</li>
<li>Communicate statuses to screenreaders.</li>
</ul>
<p>As you see, there is really not much to wish for left here. In fact,   if you use the Flex Framework, all these functionalities and features   are just a step away from you. But that&#8217;s not all, Adobe has made it  quite simple to build your own  components within the flex framework,  that can with little work,  implement the accessibility layer. If that  wasn&#8217;t enough you even have the capability to manually trigger an event  to tell attached screenreaders that something has changed within your  application.</p>
<p>For us developers, this means that we have the tools and capabilities   to fully fullfill the guidelines proposed by <a href="http://en.wikipedia.org/wiki/WCAG_2.0#WCAG_2.0" target="_blank">WCAG  2.0</a>.<br />
<br/></p>
<h2>Dark Side of the Accessible Moon</h2>
<p>One of the &#8220;<em>limitations</em>&#8221; when it comes to the Flash   Platform  and accessibility, is that it&#8217;s only available for the Windows   Platform.</p>
<p>There have been many voices that critisized Adobe for &#8220;<em>only</em>&#8221;   implementing the <a href="http://en.wikipedia.org/wiki/Microsoft_Active_Accessibility#Motivation_and_Goals" target="_blank">Microsoft  Active Accessibility (MSAA) API</a>, yet to  this day it seems that it  is the only documented and standardized API  out there. Also it is to be said, that the most popular and wide used   screenreader applications have their home only on the Windows Platform.<br />
<br/></p>
<h2>Misconceptions &amp; Half Truths</h2>
<p><strong>Question: </strong><em>So, since the Flash Platform supports  accessibility so well, how come there are only a few accessible flash sites out there?</em></p>
<p>This question is usually met with one of the following answers:</p>
<blockquote>
<h3>ANSWER: Costs for implementation too high</h3>
<p>There is no denying that implementing   accessibility into a flash application is a high cost investment, if you   do not already have a developer with prior such knowledge.</p>
<p>This has multiple reasons. Depending on  your application it will  require an entire different approach than just  the straight forward  making «Your-Standard-RIA App» or «Form-based GUI  App» accessible. Which obviously, unless you have done it before will  require  tinkering, information gathering, experimenting and lots of  testing.  Hence, it will take time and thereby cost money.</p>
<h3>ANSWER: Too difficult &amp; lack of  documentation</h3>
<p>I have good and bad news. The good news is  if you are considering making your RIA accessible, rejoice! Most of the  information / documentation on accessibility for the Flash Platform is  actually directly aimed at the Flex Framework and at RIA development.</p>
<p>And here is the bad news: if you want to  make something completely custom &#8211; like a game &#8211; accessbile, make sure  you have enough time at your hands, you will need it :). But since you  are reading this, hopefully i&#8217;ll be able to provide you with enough  information to ease your pain :).</p>
<p>The main problem lies not in the fact that  implementing is difficult or complicated, it&#8217;s the fact that real  in-depth documentation is either missing, hard to come by and that  examples usually only cover little ground. So the difficulty of  implementing accessbility really only comes from the fact that you will  have to invest lots of time into testing and debugging.</p>
<h3>ANSWER: No time / No money within the  project</h3>
<p>This really is a convergence of the  previous two points. Lack of knowledge and the possible cost of  implementation, compared to the percentage of users who actually will  benefit from that step, leads often &#8211; and here we have to be honest to  ourselves &#8211; to the quick dismissal of accessibility within projects.</p>
<h3>ANSWER: What? Flash is accessible?</h3>
<p>Yes genius, have you missed the memo? In  fact a few years back when i took Macromedia&#8217;s Certified Flash Developer  exams there was already a huge part dedicated to accessibility within  the exam. Go read up, right now!</p>
<p>Adobe followed in Macromedia&#8217;s footsteps  and continued to improve accessibility, updating the accessibility  features once more in their latest Flex 4.0 Framework and implementing  their entire accessibility layer into the freshly released AIR 2.0.</p></blockquote>
<p><br/></p>
<h2>The Challenge</h2>
<p>Coming back to our topic at hand, for EventManager i was confronted  with a game that had many requirements.</p>
<p>The game&#8217;s flow for example, does not allow a regular tab order, it  just wouldn&#8217;t work. There were also many interactions that would take  place without any prior user action and those had to inform the player  obviously about what is happening.</p>
<p>Depending on where you were in the game or what you wanted to do, the  keyboard had to apply a different layout/scheme that is tailored to the  task at hand. For example, when you are on the eventgrounds, you need  to be able to place/manipulate constructions, which obviously has an  entire different control scheme than for example having to bid on an  artist in the auction part of the game.</p>
<p>To make the matter worse, the game has a strong mix of pure flash  elements and flex components. Oh, and everything had to be multilingual  of course :)<br />
<br/></p>
<h2>Finding a Solution</h2>
<p>Keyboard accessibility was pretty clear from the start. We needed a  class that allows us to set a specified keyboard layout/scheme to be  active when we needed it.</p>
<p>For user-interactions, it was generally agreed that a context-menu  would make most sense and thereby should be used for building  constructions and general interaction with the eventgrounds in the game.</p>
<p>When it came to implementing screenreader accessibility the concept  had to change a couple times, obviously here the lack of knowledge was a  problem and forced me to try out various things until finally finding a  working and valiable solution.</p>
<p>At this point i would like to extend my most grateful thanks to  Adobe&#8217;s Accessibility Evangelist (congrats on the new position!) <a href="http://twitter.com/mattmay" target="_blank">Matt May</a> ,  he was of incredible help and was able to give me just the right hints,  that helped me resolve some key issues that were plaguing me during my  quest for accessibility.<br />
<br/></p>
<h2>The Final Solution</h2>
<p>The final solution can be broken down into three essential parts:</p>
<ul>
<li>A global Keyboard Controller that allows applying different  control schemes at will.</li>
<li>A single class from which we can communicate with a screenreader  to manipulate its focus, send text to be read via speech synthesizer or  displayed on a braille device.</li>
<li>Last but not least a custom context menu component, that allows  us to display a menu of possible actions the user can undertake  depending on the situation.</li>
</ul>
<p>I&#8217;ll be covering all the technical details and attempted approaches  in the second blog post: <a href="http://blog.swfjunkie.com/2010/06/flash-accessibility-quest-part2/" target="_blank">Flash &amp; the Quest for Accessibility &#8211; Part #2</a>.<br />
<br/></p>
<h2>The Information Hunt</h2>
<p>I&#8217;ve invested countless hours in information gathering and hunting   down resources concering accessibility and possible ways of   implementation so that most screenreaders are supported.</p>
<p>Sadly, as it turns out, supporting all available Windows   screenreaders seems to be impossible (see <a href="http://www.msfw.com/accessibility/tests/FlashTest.html" target="_blank">these  tests</a>). Thereby i concentrated on <a href="http://www.freedomscientific.com/products/fs/jaws-product-page.asp" target="_blank">JAWS</a> and <a href="http://www.aisquared.com/zoomtext" target="_blank">ZoomText</a> since  these two applications seem to be the most widely used, when it  comes to  <a href="http://en.wikipedia.org/wiki/Assistive_technology" target="_blank">assistive  technologies</a>.</p>
<p>The resources gathered throughout the project that were useful are   publicly available via <a href="http://delicious.com/SinisterDex/accessibility+flash+flex" target="_blank">my delicious account</a>. They have notes as to what  information was  useful and/or if parts of the information was incorrect  or not valid anymore.<br />
<br/></p>
<h2>Conclusion</h2>
<p>All in all, getting the chance to implement accessibility in such a big flex application was an incredibly rewarding experience in multiple aspects.</p>
<p>Getting the chance to actually implement accessibility was a great, allbeit, at times nerve-wracking experience that gave me new and  invaluable knowledge.</p>
<p>The most rewarding aspect of the entire project though, to me  personally, was to receive the excited feedback from our targeted  end-users audience. A big thanks also here to <a href="http://www.access-for-all.ch/" target="_blank">Access4All</a>, the entire team at <a href="http://liip.ch" target="_blank">LIIP</a> and everyone else involved in this big effort and of course to Postfinance for giving us this great opportunity.</p>
<p>Feel free to leave comments or get in touch with me if you have any  further questions about flash, flex or accessibility.</p>
<div class="shr-publisher-386"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><br/><div class='shareaholic-like-buttonset' style='float:none;height:30px; padding-left: 30px;'><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F06%2Fflash-accessibility-quest-part1%2F'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F06%2Fflash-accessibility-quest-part1%2F' data-shr_title='Flash+%26+The+Quest+for+Accessibility+-+Part+%231'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F06%2Fflash-accessibility-quest-part1%2F' data-shr_title='Flash+%26+The+Quest+for+Accessibility+-+Part+%231'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F06%2Fflash-accessibility-quest-part1%2F' data-shr_title='Flash+%26+The+Quest+for+Accessibility+-+Part+%231'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.swfjunkie.com/2010/06/flash-accessibility-quest-part1/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Network Issue in AIR</title>
		<link>http://blog.swfjunkie.com/2010/06/air-network-issues-on-windows/</link>
		<comments>http://blog.swfjunkie.com/2010/06/air-network-issues-on-windows/#comments</comments>
		<pubDate>Sat, 19 Jun 2010 12:53:51 +0000</pubDate>
		<dc:creator>Sandro</dc:creator>
				<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tricks]]></category>

		<guid isPermaLink="false">http://blog.swfjunkie.com/?p=381</guid>
		<description><![CDATA[I just wasted 4 hours on this problem and figured i might aswell document it, so that if someone else is going to run into the same issue, they won&#8217;t have to suffer the same 4 hours that i just did. If you use AIR Applications under Windows and all of sudden those apps can&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I just wasted 4 hours on this problem and figured i might aswell document it, so that if someone else is going to run into the same issue, they won&#8217;t have to suffer the same 4 hours that i just did.</p>
<p>If you use AIR Applications under Windows and all of sudden those apps can&#8217;t connect to the internet anymore, make sure that your Internet Explorer is not &#8220;Working Offline&#8221;. You can check in the Menu of Internet Explorer under <strong>Tools -&gt; Work Offline</strong>. If it has a checkmark, remove it and your apps should be working fine again.</p>
<p>I&#8217;m really suprised that the Windows Version of AIR apparently retrieves it&#8217;s Network Capabitilies via Internet Explorer and that this behaviour is in no way documented anywhere. Hopefully Adobe will changes this or atleast make sure that people now about this.</p>
<div class="shr-publisher-381"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><br/><div class='shareaholic-like-buttonset' style='float:none;height:30px; padding-left: 30px;'><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F06%2Fair-network-issues-on-windows%2F'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F06%2Fair-network-issues-on-windows%2F' data-shr_title='Network+Issue+in+AIR'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F06%2Fair-network-issues-on-windows%2F' data-shr_title='Network+Issue+in+AIR'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fblog.swfjunkie.com%2F2010%2F06%2Fair-network-issues-on-windows%2F' data-shr_title='Network+Issue+in+AIR'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.swfjunkie.com/2010/06/air-network-issues-on-windows/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

