<?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>[mck] &#187; AS3</title>
	<atom:link href="http://www.matthijskamstra.nl/blog/index.php/category/flash/as3/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.matthijskamstra.nl/blog</link>
	<description>a polymath zapper</description>
	<lastBuildDate>Fri, 27 Jan 2012 22:32:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>FDT and ANT &#8211; part 2</title>
		<link>http://www.matthijskamstra.nl/blog/index.php/2010/09/29/fdt-and-ant-part-2/</link>
		<comments>http://www.matthijskamstra.nl/blog/index.php/2010/09/29/fdt-and-ant-part-2/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 08:00:19 +0000</pubDate>
		<dc:creator>Matthijs Kamstra</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[FDT]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[ANT]]></category>
		<category><![CDATA[Firefox]]></category>

		<guid isPermaLink="false">http://www.matthijskamstra.nl/blog/?p=1593</guid>
		<description><![CDATA[Trying to build the ultimate build.xml in ANT: debug/production zip ftp version &#8230; etc: will save a lot of keystrokes in FDT4 source: http://twitter.com/MatthijsKamstra/statuses/25194997777 All the information about the ultimate build.xml can be found on the internet, so I will post the links and you can figure it out for yourself. I used the build.xml [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Trying to build the ultimate build.xml in ANT: debug/production zip ftp version &#8230; etc: will save a lot of keystrokes in FDT4</p></blockquote>
<p>source: <a href="http://twitter.com/MatthijsKamstra/statuses/25194997777">http://twitter.com/MatthijsKamstra/statuses/25194997777</a></p>
<p>All the information about the ultimate build.xml can be found on the internet, so I will post the links and you can figure it out for yourself.</p>
<p>I used the build.xml made by Jankees van Woezik (<a href="http://blog.base42.nl">Base 42</a>) as the base of my ultimate ANT build file. You can read about it and download here: <a href="http://blog.base42.nl/2009/12/11/my-workflow-with-ant-and-fdt/">My workflow with ANT and FDT</a>.</p>
<p>Because we work a little bit different I had to do some modifications (for example: I work with 2 swf: preloader.swf and main.swf and work on PC). I created a list of stuff that I wanted to do with ANT and behind the &#8220;wish&#8221; you find a link to the site I found the solution for the problem:</p>
<ol>
<li>base ant script >> <a href="http://blog.base42.nl/2009/12/11/my-workflow-with-ant-and-fdt/">http://blog.base42.nl/2009/12/11/my-workflow-with-ant-and-fdt/</a></li>
<li>inspiration >> <a href="http://code.google.com/p/sekati/source/browse/trunk/build.xml">http://code.google.com/p/sekati/source/browse/trunk/build.xml</a></li>
<li>install ftp protocol in fdt/eclips >> <a href="http://www.rumblingskies.com/blog/?p=75">http://www.rumblingskies.com/blog/?p=75</a></li>
<li>update version ant script >> <a href="http://github.com/base42/projectcreator/blob/master/original/flash/builders/ant/updateVersionFile.xml">http://github.com/base42/projectcreator/blob/master/original/flash/builders/ant/updateVersionFile.xml</a></li>
<li>another update ant script >> <a href="http://www.sephiroth.it/weblog/archives/2010/01/update_your_app_version_using_ant_bui.php">http://www.sephiroth.it/weblog/archives/2010/01/update_your_app_version_using_ant_bui.php</a></li>
<li>update Firefox (only works on OSX) >> <a href="http://epologee.com/blog/2009/focus-and-reload-pages-in-firefox-with-ant/">http://epologee.com/blog/2009/focus-and-reload-pages-in-firefox-with-ant/</a></li>
<li>html wrapper >> <a href="http://fdt.powerflasher.com/blog/?p=1392">http://fdt.powerflasher.com/blog/?p=1392</a></li>
<li>create folders >> <a href="http://code.google.com/p/sekati/source/browse/trunk/build.xml">http://code.google.com/p/sekati/source/browse/trunk/build.xml</a></li>
</ol>
<p>Something like this needs some time to find its place in my workflow, and will be changed a lot. That is the reason why I&#8217;m not posting my ant file&#8230; not because it&#8217;s ugly or a secret&#8230; but because I need to refine it.&nbsp; </p>
<p>Oh&#8230; I also have a small todo list (perhaps you could call it a nice-to-have-list)</p>
<ul>
<li>count lines of code >> <a href="http://cloc.sourceforge.net/">http://cloc.sourceforge.net/</a></li>
<li>zip files >> <a href="http://www.funky-monkey.nl/blog/2010/09/22/copy-files-to-a-network-share-with-ant-and-fdt/">http://www.funky-monkey.nl/blog/2010/09/22/copy-files-to-a-network-share-with-ant-and-fdt/</a></li>
<li>asdoc >> <a href="http://code.google.com/p/sekati/source/browse/trunk/build.xml">http://code.google.com/p/sekati/source/browse/trunk/build.xml</a></li>
<li>swc >> <a href=" http://code.google.com/p/sekati/source/browse/trunk/build.xml"> http://code.google.com/p/sekati/source/browse/trunk/build.xml</a></li>
</ul>
<p>As you can see, these are the thing that I don&#8217;t need a lot, but perhaps in the nearby future&#8230;</p>
<hr/>
<h3>FTP (File transfer protocol)</h3>
<p>Ant doesn&#8217;t have the FTP protocols default installed so you need to update FDT4/Eclipse.<br />
You can find the explanation here: <a href="http://www.rumblingskies.com/blog/?p=75" target="_blank">http://www.rumblingskies.com/blog/?p=75</a></p>
<div class="update"><strong>Update #1:</strong>The locations of the files you need are changed so let me post the correct ones here:</p>
<ul>
<li><a href="http://commons.apache.org/net/download_net.cgi" target="_blank">commons-net-2.0.jar</a> | <a href="http://apache.hippo.nl//commons/net/binaries/commons-net-2.0.zip" target="_blank" class="broken_link">direct link</a></li>
<li><a href="http://jakarta.apache.org/site/downloads/downloads_oro.cgi" target="_blank" class="broken_link">jakarta-oro-2.0.8.jar</a> | <a href="http://apache.hippo.nl//jakarta/oro/binaries/jakarta-oro-2.0.8.zip" target="_blank" class="broken_link">direct link</a></li>
</ul>
<p>Save these files in the following folder: <code>C:\FDT\plugins\org.apache.ant_***\bin\</code>
</div>
<div class="update"><strong>Update #2:</strong> hmmm jakarta-oro seems to be <a href="http://jakarta.apache.org/oro/index.html">Retired</a>&#8230; and I haven&#8217;t got time to figure this out right now&#8230;</div>
<p>You probably can add the zips you downloaded there, I extracted the two files and that worked for me. I did this in FDT4 and all I got was an alert about &#8220;The specified Ant runtime classpath does not include a tools.jar library&#8230;..&#8221; which I ignored (and without any problem).</p>
<p>After the installment of the two .JAR files you need an ANT script to get thing started which I just copied from the previous link:<br />
[as light="true" wraplines="true"]<br />
&lt;target name=&quot;ftp_upload&quot; description=&quot;uploads files through ftp&quot;&gt;<br />
  &lt;echo message=&quot;uploading files&quot; /&gt;<br />
  &lt;ftp server=&quot;123.456.78.90&quot;<br />
       port=&quot;21&quot;<br />
       remotedir=&quot;/www/ant_upload_test&quot;<br />
       userid=&quot;my_user_id&quot;<br />
       password=&quot;my_password&quot;<br />
       passive=&quot;no&quot;<br />
       depends=&quot;yes&quot;<br />
       binary=&quot;yes&quot;&gt;<br />
       &lt;fileset dir=&quot;../bin&quot; /&gt;<br />
  &lt;/ftp&gt;<br />
&lt;/target&gt;[/as]</p>
<hr/>
<h3>Update version</h3>
<p>It&#8217;s a combination of writing a build.txt file and a Version.as file.<br />
See what Jankees van Woezik did and I use the script from Sephiroth to have a building number that adds 1.</p>
<hr/>
<h3>Firefox refresh</h3>
<p>this feature is awesome in combination with ftp, so here the one who found the how: Eric Paul (epologee). Read more about it here: <a href="http://epologee.com/blog/2009/focus-and-reload-pages-in-firefox-with-ant/">focus-and-reload-pages-in-firefox-with-ant</a></p>
<p>So downloaded the file, installed the firefox extension and gave it a run:<br />
[as light="true" wraplines="true"]<br />
&lt;target name=&quot;focus Firefox and reload page&quot;&gt;Execute failed: java.io.IOException: Cannot run program &quot;open&quot; (in directory &quot;C:\foo\bar\test&quot;): CreateProcess error=2, Het systeem kan het opgegeven bestand niet vinden<br />
[/as]</p>
<p>After some googling, I found that it&#8217;s a OSX command that doesn&#8217;t work on Windows:</p>
<p>[as highlight="1" light="true" wraplines="true"]<br />
&lt;target name=&quot;focus Firefox and reload page&quot;&gt;<br />
    &lt;exec executable=&quot;open&quot;&gt;<br />
        &lt;arg line=&quot;-a Firefox&quot; /&gt;<br />
    &lt;/exec&gt;<br />
    &lt;exec executable=&quot;flash/tools/fresno/fresno&quot;&gt;<br />
        &lt;arg line=&quot;-j &#8216;content.location.reload()&#8217;&quot; /&gt;<br />
    &lt;/exec&gt;<br />
&lt;/target&gt;[/as]</p>
<p>I haven&#8217;t found a solution that refreshes the page like Fresno does on Windows.<br />
So the only thing I can think of is:</p>
<p>[as light="true" wraplines="true"]<br />
&lt;target name=&quot;Launch in Firefox (reload)&quot;&gt;<br />
        &lt;echo&gt;Launch in Firefox (not really a reload)&lt;/echo&gt;<br />
        &lt;exec executable=&quot;H:/Program Files/Mozilla Firefox/firefox.exe&quot; spawn=&quot;yes&quot;&gt;<br />
            &lt;arg line=&quot;${flashproject.preview.url}&quot; /&gt;<br />
        &lt;/exec&gt;<br />
    &lt;/target&gt;<br />
[/as]</p>
<hr/>
<h3>Html wrapper</h3>
<p>I changed the file a little bit (removed the history) not really difficult.</p>
<hr/>
<h3>Folders</h3>
<p>You get the idea&#8230;.</p>
<p>(reminder for myself: <a href="http://fdt.powerflasher.de/docs/FDT_Ant_Tasks">http://fdt.powerflasher.de/docs/FDT_Ant_Tasks</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthijskamstra.nl/blog/index.php/2010/09/29/fdt-and-ant-part-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Create SWC library from FDT</title>
		<link>http://www.matthijskamstra.nl/blog/index.php/2010/07/14/create-swc-library-from-fdt/</link>
		<comments>http://www.matthijskamstra.nl/blog/index.php/2010/07/14/create-swc-library-from-fdt/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 08:00:35 +0000</pubDate>
		<dc:creator>Matthijs Kamstra</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[FDT]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[SWC]]></category>

		<guid isPermaLink="false">http://www.matthijskamstra.nl/blog/?p=1448</guid>
		<description><![CDATA[I use Greensock Tweening Platform a lot, it awesome. Download it (here for example) and you have everything you need. Now I start working with SWC files and they are so compact: I love it. But how do you get a library in a SWC? Google has an answer but it&#8217;s very complex. The best [...]]]></description>
			<content:encoded><![CDATA[<p>I use <a href="http://www.greensock.com/">Greensock</a> Tweening Platform a lot, it awesome. Download it (<a href="http://www.greensock.com/tweenmax/">here</a> for example) and you have everything you need.</p>
<p>Now I start working with SWC files and they are so compact: I love it.<br />
But how do you get a library in a SWC? <a href="http://www.google.com/search?q=create+a+swc+with+fdt" target="_blank">Google</a> has an answer but it&#8217;s very complex.</p>
<p>The best answer is from <a href="http://twitter.com/BrunoFonzi/">Bruno Fonzi</a> on
<p><a href="http://twitter.com/BrunoFonzi/statuses/17885849155" class="broken_link">Twitter / Bruno Fonzi: How to create SWC librarie &#8230;</a>.</p>
<p>How to create SWC libraries from FDT:<br />
Right click Project > Run as > FDT Library<br />
or<br />
Menu > Run Configurations > Create new FDT Library</p>
<p>So start with a <strong>New Flash Project</strong> (the name you will use for this project will be the name of the SWC: in my case &#8220;Greensock_Tweening_Platform&#8221;) and copy the <strong>com</strong> folder from the Greensock ZIP into the src (of source) folder.<br />
<img src="http://www.matthijskamstra.nl/blog/wp-content/uploads/greensock_folder.png" alt="" title="Greensock folder" width="291" height="69" class="alignnone size-full wp-image-1454" /><br />
If you follow the instructions and create a SWC you will get an error about: UIComponent and Vector (depends on your Project properties).</p>
<p>So to fix this: follow the 2 red x&#8217;s<br />
<img src="http://www.matthijskamstra.nl/blog/wp-content/uploads/greensock_folder_with_com.png" alt="" title="Greensock folder with red x" width="299" height="377" class="alignnone size-full wp-image-1453" /></p>
<p>com > greensock > loading > display > FlexContentDisplay<br />
I don&#8217;t use this one, so delete.</p>
<p>The next depends on the project properties (I used SDK: Flex 3.3 and Player Version 9 and there are no Vectors in Player version 9)<br />
com > greensock > plugins > EndVectorPlugin<br />
I can&#8217;t use this one, so delete this on too.</p>
<p>Create the SWC again and your done: you have one file with the Greensock Tweening Platform in it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthijskamstra.nl/blog/index.php/2010/07/14/create-swc-library-from-fdt/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FDT and ANT &#8211; part 1</title>
		<link>http://www.matthijskamstra.nl/blog/index.php/2010/07/07/fdt-and-ant-part-1/</link>
		<comments>http://www.matthijskamstra.nl/blog/index.php/2010/07/07/fdt-and-ant-part-1/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 09:57:30 +0000</pubDate>
		<dc:creator>Matthijs Kamstra</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[FDT]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[ANT-Build-template]]></category>
		<category><![CDATA[ANT-file]]></category>
		<category><![CDATA[ANT-snippets]]></category>
		<category><![CDATA[ANT-View]]></category>
		<category><![CDATA[flashdevelop]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.matthijskamstra.nl/blog/?p=1441</guid>
		<description><![CDATA[Just started to work with FDT and wrote about my &#8220;troubles&#8221; (post#1 and post#2) with my transition from FlashDevelop. (have to be very carefull what I say: &#8220;they&#8221; are watching me: here and here ) And it seems to be a very natural (geeky) thing to learn about ANT. And where do you go to [...]]]></description>
			<content:encoded><![CDATA[<p>Just started to work with <a href="http://www.fdt.powerflasher.com/">FDT</a> and wrote about my &#8220;troubles&#8221; (<a href="http://www.matthijskamstra.nl/blog/index.php/2010/06/16/moving-from-flashdevelop-to-fdt/">post#1</a> and <a href="http://www.matthijskamstra.nl/blog/index.php/2010/06/29/missing-in-fdt-after-working-with-flashdevelop/">post#2</a>) with my transition from <a href="http://www.flashdevelop.org/wikidocs/index.php?title=Main_Page">FlashDevelop</a>.<br />
<em>(have to be very carefull what I say: &#8220;they&#8221; are watching me: <a href="http://www.matthijskamstra.nl/blog/index.php/2010/06/29/missing-in-fdt-after-working-with-flashdevelop/#comment-11773">here</a> and <a href="http://twitter.com/BrunoFonzi/statuses/17355312899" class="broken_link">here</a> <img src='http://www.matthijskamstra.nl/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  )<br />
</em><br />
And it seems to be a very natural (geeky) thing to learn about <a href="http://ant.apache.org/" target="_blank">ANT</a>.</p>
<p>And where do you go to learn about ANT and SWF/Flash/FDT? (<a href="http://www.google.com/search?q=fdt+ant" target="_blank">Google</a>?)<br />
After some tinkering all I got was: <code><strong>failed to create task or type fdt.launch.application</strong></code></p>
<p>This post was very useful: <a href="http://blog.alanklement.com/2009/08/10/fdt-and-ant-a-users-guide-part-i/">FDT and ANT | A User’s Guide – Part I</a> by Alan Klement.<br />
Watch the videos (I&#8217;m not very fond of tutorial videos but in this case; they get the job done).<br />
What I love about the &#8220;<a href="http://blog.alanklement.com/files/videos/ant_part_one.mov">Video I: Getting Started</a>&#8221; is the fact that it builds up from scratch. So watch this video when you want to know about ant-files/xml, how to open the ANT-View, how to open/execute an ANT-file.</p>
<p>The second video (<a href="http://blog.alanklement.com/files/videos/ant_part_two.mov">Video II: Compiling a SWF</a>) was what I really was looking for: how to export a SWF. Very nice because it starts from scratch.<br />
And it gave me the answer I was looking for: why didn&#8217;t my ANT-file didn&#8217;t work (it about 3/4 of the video):<br />
<code><br />
BUILD FAILED<br />
[blabla]\source\a\example\build\build.xml:17: Problem: <strong>failed to create task or type fdt.launch.application</strong><br />
Cause: The name is undefined.<br />
Action: Check the spelling.<br />
Action: Check that any custom tasks/types have been declared.<br />
Action: Check that any
<presetdef>/<macrodef> declarations have taken place.<br />
</code></p>
<p><strong>Solution is very simple</strong>, but if you don&#8217;t know, you will hate FDT and really it&#8217;s not it fault:<br />
Goto the green &#8220;play&#8221; button with the brown bag, in the toolbar (one picture says more than a thousand words:)<br />
<img src="http://www.matthijskamstra.nl/blog/wp-content/uploads/external_tools_configurations_hoover.png" alt="" title="external_tools_configurations_hoover" width="229" height="142" class="alignnone size-full wp-image-1444" /></p>
<p>Select the ANT-file you want to change (I have only one <img src='http://www.matthijskamstra.nl/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ), goto to tab &#8220;<strong>JRE</strong>&#8221; and change the <strong>Runtime JRE</strong> to <strong>Run in the same JRE as the workspace</strong> and your done:<br />
<a href="http://www.matthijskamstra.nl/blog/wp-content/uploads/external_tools_configurations.png" target="_blank"><img src="http://www.matthijskamstra.nl/blog/wp-content/uploads/external_tools_configurations.png" alt="" title="external_tools_configurations" width="500" class="alignnone size-full wp-image-1445" /></a></p>
<p>Very useful are the ANT-snippets and ANT-Build-template!<br />
<a href="http://blog.alanklement.com/files/zip/ant_templates.zip">Download</a> (created by Alan Klement) and &#8220;install&#8221; the ANT-template (how-to on <a href="http://blog.alanklement.com/2009/08/10/fdt-and-ant-a-users-guide-part-i/">this page</a> but here the short version)</p>
<blockquote><p>
To add XML files templates go: <strong>Preferences > XML > XML Files > Editor > Templates</strong> and click import.</p>
<p>To add Ant snippets go: <strong>Preferences > Ant > Editor > Templates</strong> and click import.</p></blockquote>
<p>I haven&#8217;t seen the second part of this tutorial: <a href="http://blog.alanklement.com/2009/08/19/fdt-ant-part-two/">FDT and ANT | A User’s Guide – Part II</a> but I will.<br />
It seems to be focused on the use of the templates and snippets.</p>
<p>source:<br />
<a href="http://blog.alanklement.com/2009/08/10/fdt-and-ant-a-users-guide-part-i/">FDT and ANT | A User’s Guide – Part I</a><br />
<a href="http://blog.alanklement.com/2009/08/19/fdt-ant-part-two/">FDT and ANT | A User’s Guide – Part II</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthijskamstra.nl/blog/index.php/2010/07/07/fdt-and-ant-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://blog.alanklement.com/files/videos/ant_part_one.mov" length="15458577" type="video/quicktime" />
<enclosure url="http://blog.alanklement.com/files/videos/ant_part_two.mov" length="17294254" type="video/quicktime" />
		</item>
		<item>
		<title>Moving from FlashDevelop to FDT</title>
		<link>http://www.matthijskamstra.nl/blog/index.php/2010/06/16/moving-from-flashdevelop-to-fdt/</link>
		<comments>http://www.matthijskamstra.nl/blog/index.php/2010/06/16/moving-from-flashdevelop-to-fdt/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 10:27:46 +0000</pubDate>
		<dc:creator>Matthijs Kamstra</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[FDT]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flashdevelop]]></category>
		<category><![CDATA[Templates]]></category>

		<guid isPermaLink="false">http://www.matthijskamstra.nl/blog/?p=1417</guid>
		<description><![CDATA[Yes, its time, I need to&#8230; So how to make the transition from FlashDevelop to FDT as easy as possible? Let FDT react like FlashDevelop And I don&#8217;t even have to break a sweat: the amazing Steven Sacks (creator of Gaia) wrote an article about it: read here. The only two thing that I&#8217;m using [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, its time, I need to&#8230;<br />
So how to make the transition from FlashDevelop to FDT as easy as possible?</p>
<h3>Let FDT react like FlashDevelop</h3>
<p>And I don&#8217;t even have to break a sweat: the amazing <a href="http://www.stevensacks.net/">Steven Sacks</a> (creator of Gaia) wrote an article about it: <a href="http://www.stevensacks.net/2010/04/30/setting-up-fdt-to-look-and-behave-like-flashdevelop/">read here</a>.<br />
The only two thing that I&#8217;m using are:<br />
Open <strong>Window > Preferences</strong> </p>
<p>Under <strong>FDT > Editor > Code Assist</strong> copy and paste this into Auto activation triggers for AS, and set the delay to 0ms (zero).</p>
<div class="showcode">
<pre>
abcdefghijklmnopqrstuvwxyz_. :</pre>
</div>
<p>and</p>
<p>Under <strong>Problems > AS3 Problems</strong>:<br />
<strong>Unresolvable</strong> > <strong>Unresolvable variable reference in E4X</strong> and <strong>Unresolvable member reference in dynamic object</strong> should both be set to Disabled (from Warning to Disabled).</p>
<p>The shortcuts I just left them as they where: I&#8217;m working in another program so I should use the shortcut given by that program.</p>
<div class="update"><strong>Update #1:</strong> hmmm I noticed that I can&#8217;t live without CTRL+ENTER&#8230;. explanation here: <a href="http://cote.cc/blog/using-ctrl-enter-to-compile-actionscript-code-in-fdt">Using CTRL-ENTER to compile ActionScript code in FDT</a>. So now I have CTRL+ENTER and debug run:  CTRL+SHIFT+ENTER  <img src='http://www.matthijskamstra.nl/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  </p>
<p>short explanation (so I can do this quickly if something happens to FDT):</p>
<p>Under <strong>Preferences > Run/Debug > Launching</strong> at the bottom at <strong>Launch Operation</strong>: Select &#8220;<strong>Always launch the previously launched application</strong>&#8221;</p>
<p>then </p>
<p>Under <strong>Preferences > General > Keys</strong> find (or type in &#8220;type filter text&#8221; &#8211; searchbox: &#8220;last&#8221;) a command called &#8220;<strong>Run Last Launched</strong>&#8221; and click Copy Command. Assign (binding) the shortcut CTRL-ENTER to the copied command and change &#8220;when&#8221; to <strike><strong>Editing ActionScipt Source</strong> (no spelling mistake: it really says that)</strike> <strong>Editing ActionScript Source</strong>.<br />
Do the same thing for the &#8220;<strong>Debug Last Launched</strong>&#8221; command and assign the shortcut : CTRL-SHIFT-ENTER and change the when to <strong>Editing ActionScipt Source</strong>.</p>
<p><strike>I&#8217;m not sure if the stuff I wrote here is only for FDT4 but the way it was explained on the site previous mentioned didn&#8217;t work in FDT4</strike>
</div>
<h3>Some templates/snippets that are very useful</h3>
<p>I used <a href="http://www.double-quotes.com/fd/dq.htm">this plugin</a> for my trace in FlashDevelop, so how to do this in FDT?</p>
<div class="update"><strong>Update #2:</strong> I shouldn&#8217;t forget to mention CTRL+0 (read the <a href="http://www.fdt.powerflasher.com/developer-tools/fdt-3/getting-started/shortcuts/">shortcut list for FDT</a>) which is the shortcut for &#8220;Quick Trace&#8221;. This one I use to trace variable for example and the trace template below for functions.</div>
<div class="update"><strong>Update #4:</strong> This is really a reminder for myself, but if you need it you know where you can find it in FDT4.<br />
Some minor adjustments like: </p>
<p><strong>Preferences > FDT > Build Path </strong> change <strong>Source folders</strong> to &#8220;source&#8221; (I like source above src) and <strong>Output folder</strong> to &#8220;deploy&#8221; (I like deploy above bin)</p>
<p><strong>Preferences > FDT > Code Style > Code Templates (Misc)</strong> to &#8220;<strong>Override System UserName &#8211; ${user}</strong>&#8221;</p>
<p><strong>Preferences > FDT > Editor</strong> goto &#8220;Folding&#8221; and uncheck &#8220;Folding enabled&#8221; (I like to see everything, comment also)</p>
<p><strong>Preferences > FDT > Tools > Flash/Flash Help</strong> to add paths to Flash (in my case: &#8220;H:\Program Files\Adobe\Adobe Flash CS4\Flash.exe&#8221;) and the Flash help files (in my case: &#8220;H:\Program Files\Adobe\Adobe Flash CS4\en\First Run\HelpPanel\Help&#8221;)</p>
<p><strong>Preferences > General > Web Browser</strong> change to &#8220;Use external Web browser&#8221; to my favourite browser: Firefox <strike>(no Google Chrome there yet)</strike><br />
You can add any browser that you want.
</div>
<div class="update"><strong>Update #5:</strong> visit <a href="http://www.rumblingskies.com/blog/?p=75">http://www.rumblingskies.com/blog/?p=75</a> and add FTP capabilities to ANT.</div>
<p>You have to create a code-template/code-snippet:<br />
go to <strong>Preferences > FDT > Editor > Templates</strong></p>
<p>This is a template that resembles the trace I used in FlashDevelop<br />
<strong>Trace:</strong></p>
<div class="showcode">
<pre>trace ( "+ ${enclosing_type}.${enclosing_method}() - args: " + [ ${enclosing_method_arguments} ] );</pre>
</div>
<p>and I found some other useful templates</p>
<p><strong>Public method:</strong></p>
<div class="showcode">
<pre>public function ${methodName}():${type} {
    trace(">> ${enclosing_type}.${methodName}() args: "+[]);
    ${cursor}
};</pre>
</div>
<p>for some strange reason there is no shortcut for asdoc <img src='http://www.matthijskamstra.nl/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p><strong>ASDoc:</strong></p>
<div class="showcode">
<pre>/**
 * ${cursor}
 * @example
 * @param		${enclosing_method_arguments}
 * @return
 */
 */</pre>
</div>
<div class="update"><strong>Update #3:</strong> (sadly if there are no param in the function &#8220;${enclosing_method_arguments}&#8221; will be printed..)</div>
<p>a switch a use a lot with FlashDevelop:</p>
<p><strong>Switch:</strong></p>
<div class="showcode">
<pre>switch (${value}) {
	case ${result}:
		trace ("${result}" +${result} );
		${cursor}
		break;
    default:
        trace("case '"+${value}+"':\r\ttrace ('--- "+${value}+"');\r\tbreak;" );
}
</pre>
</div>
<p>and the template for a singleton</p>
<p><strong>Singleton:</strong> (from <a href="http://www.gskinner.com/blog/archives/2006/07/as3_singletons.html">gskinner</a>)</p>
<div class="showcode">
<pre>package ${enclosing_package} {

	/**
	* @author ${user}
	*/
	public class ${enclosing_type} {

		private static var _instance:${enclosing_type};
		private static var _allowInstantiation:Boolean;

		public static function getInstance():${enclosing_type} {
			if (_instance == null) {
				_allowInstantiation = true;
				_instance = new ${enclosing_type}();
				_allowInstantiation = false;
			}
			return _instance;
		}

		public function ${enclosing_type}():void {
			if (!_allowInstantiation) {
				throw new Error("Error: Instantiation failed: Use ${enclosing_type}.getInstance() instead of new.");
			}
		}

		${cursor}

	} // end class

} // end package</pre>
</div>
<p>enough for now, here some other posts about the subject</p>
<p><strong>Source:</strong><br />
<a href="http://blog.hydrotik.com/2007/11/19/fdt-30-code-templates/">http://blog.hydrotik.com/2007/11/19/fdt-30-code-templates/</a><br />
<a href="http://www.breaktrycatch.com/useful-fdt-templates/">http://www.breaktrycatch.com/useful-fdt-templates/</a><br />
<a href="http://www.stevensacks.net/2010/04/30/setting-up-fdt-to-look-and-behave-like-flashdevelop/">http://www.stevensacks.net/2010/04/30/setting-up-fdt-to-look-and-behave-like-flashdevelop/</a><br />
<a href="http://www.gskinner.com/blog/archives/2006/07/as3_singletons.html">http://www.gskinner.com/blog/archives/2006/07/as3_singletons.html</a><br />
<a href="http://blog.flashmech.net/2008/08/review-fdt-vs-flashdevelop/">http://blog.flashmech.net/2008/08/review-fdt-vs-flashdevelop/</a><br />
<a href="https://fosswiki.liip.ch/display/FLASH/Code+Snippets+for+FDT+and+Flex">https://fosswiki.liip.ch/display/FLASH/Code+Snippets+for+FDT+and+Flex</a><br />
<a href="http://cote.cc/blog/using-ctrl-enter-to-compile-actionscript-code-in-fdt">http://cote.cc/blog/using-ctrl-enter-to-compile-actionscript-code-in-fdt</a><br />
<a href="http://www.fdt.powerflasher.com/developer-tools/fdt-3/getting-started/shortcuts/">http://www.fdt.powerflasher.com/developer-tools/fdt-3/getting-started/shortcuts/</a><br />
<a href="http://blog.flashmech.net/2008/10/fdt-tip-boost-your-code-assist/">http://blog.flashmech.net/2008/10/fdt-tip-boost-your-code-assist/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthijskamstra.nl/blog/index.php/2010/06/16/moving-from-flashdevelop-to-fdt/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Twitter RSS reader &#8211; part 2</title>
		<link>http://www.matthijskamstra.nl/blog/index.php/2010/01/06/twitter-rss-reader-part-2/</link>
		<comments>http://www.matthijskamstra.nl/blog/index.php/2010/01/06/twitter-rss-reader-part-2/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 08:00:48 +0000</pubDate>
		<dc:creator>Matthijs Kamstra</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[proxy.php]]></category>

		<guid isPermaLink="false">http://www.matthijskamstra.nl/blog/?p=1218</guid>
		<description><![CDATA[This is a &#8220;must-read&#8221; update for twitter rss reader in flash as3. read here the complete (dutch) error message Stupid, stupid, stupid, I already knew this: Flash cross-domain security. Which simple says that it&#8217;s not allowed to &#8220;get&#8221; anything from another website unless the server has a crossdomain.xml. The nasty part is that, while you [...]]]></description>
			<content:encoded><![CDATA[<div class='highlight'>This is a &#8220;must-read&#8221; update for <a href="http://www.matthijskamstra.nl/blog/index.php/2009/12/30/twitter-rss-reader-in-flash-as3/">twitter rss reader in flash as3</a>.</div>
<p><img src="http://www.matthijskamstra.nl/blog/wp-content/uploads/error_flash_debugplayer.jpg" alt="" title="flash debugplayer error" width="488" height="223" class="alignnone size-full wp-image-1221" /><br />
<em><a href="#dutch_error">read here</a> the complete (dutch) error message</em></p>
<p>Stupid, stupid, stupid, I already knew this: <strong><a href="http://www.macromedia.com/devnet/flash/articles/fplayer_security_03.html">Flash cross-domain security</a></strong>.<br />
Which simple says that it&#8217;s not allowed to &#8220;get&#8221; anything from another website unless the server has a <a href="http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html"><code>crossdomain.xml</code></a>.<br />
The nasty part is that, while you are testing in Flash IDE nothing goes wrong. So I only bumped into this when I put it on my server&#8230;</p>
<p>So what to do?</p>
<ol>
<li>Ask Twitter to change there <code>crossdomain.xml</code> and add my domain&#8230;&#8230; (is this really an option?)</li>
<li>Find something around the crossdomain security from Flash</li>
</ol>
<p>Luckily solution two is the easiest one: use a proxy to get the data we want.<br />
Because PHP doesn&#8217;t have the same restrictions as Flash has we will be using a proxy.php. </p>
<p>This is how it works: Flash wants a <code>crossdomain.xml</code> if you &#8220;get&#8221; data from another server, but if you &#8220;get&#8221; data from the same server there is no problem. So we will be asking the <code>proxy.php</code> to &#8220;get&#8221; the xml/rss and serve it to Flash.</p>
<p>So instead of loading the data directly from Twitter<br />
<code>http://twitter.com/statuses/user_timeline/27657030.rss</code><br />
We will be using the proxy instead<br />
<code>http://yoursite.com/xml_proxy.php?url=http://twitter.com/statuses/user_timeline/27657030.rss</code></p>
<p>I didn&#8217;t write the proxy myself:<br />
The proxy that I used can be found here: <a href="http://xmlrpcflash.mattism.com/proxy_info.php">http://xmlrpcflash.mattism.com/proxy_info.php</a> (it has some extra explanation about the subject )<br />
This proxy can be use for all sorts of xml, and any server.</p>
<p>As always I&#8217;m reinventing the wheel: this group needed a specific solution but is nice to read more about it:<br />
<a href="http://woveninteractive.net/2009/02/twitter-in-flash-getting-past-the-securityerrorevent/">http://woveninteractive.net/2009/02/twitter-in-flash-getting-past-the-securityerrorevent/</a><br />
They wrote something similar, but a proxy more specific suited for twitter and the use of <a href="http://code.google.com/p/twitterscript/source/checkout">twitterscript</a>.</p>
<div class="update"><strong>Update #1:</strong> I found another proxy.php (I really don&#8217;t think you need another, but choices are nice <img src='http://www.matthijskamstra.nl/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  ).<br />
<a href="http://www.abdulqabiz.com/blog/archives/2007/05/31/php-proxy-script-for-cross-domain-requests/">PHP Proxy Script for cross-domain requests</a>
</div>
<div id="dutch_error">
Sorry for the dutch error&#8230; I have a dutch version of XP (not my choice)<br />
<code><br />
Error #2044: Niet-afgehandelde securityError:. text=Error #2048: Schending van beveiligingssandbox: http://emceekay.nl/paper/flash/twttr.swf kan geen gegevens laden van http://twitter.com/statuses/user_timeline/27657030.rss.<br />
	at nl.emceekay.twttr::TwttrBase/getFeed()<br />
	at nl.emceekay.twttr::TwttrMain()<br />
</code>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.matthijskamstra.nl/blog/index.php/2010/01/06/twitter-rss-reader-part-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Twitter rss reader in Flash as3</title>
		<link>http://www.matthijskamstra.nl/blog/index.php/2009/12/30/twitter-rss-reader-in-flash-as3/</link>
		<comments>http://www.matthijskamstra.nl/blog/index.php/2009/12/30/twitter-rss-reader-in-flash-as3/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 08:00:16 +0000</pubDate>
		<dc:creator>Matthijs Kamstra</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Urban papercraft]]></category>
		<category><![CDATA[Papercraft]]></category>
		<category><![CDATA[PaperToy]]></category>
		<category><![CDATA[PaperToys]]></category>
		<category><![CDATA[Urban]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.matthijskamstra.nl/blog/?p=1196</guid>
		<description><![CDATA[Update #1: must read this post, otherwise this code will fail when you place it on your server! I recently started my own company (eMCeeKay.nl) and I need to make a website for it&#8230;. Not really a problem besides that I don&#8217;t have any time to create a design. So I was thinking about a [...]]]></description>
			<content:encoded><![CDATA[<div class="update"><strong>Update #1:</strong> <a href="http://www.matthijskamstra.nl/blog/index.php/2010/01/06/twitter-rss-reader-part-2/">must read this post</a>, otherwise this code will fail when you place it on your server!</div>
<p>I recently started my own company (<a href="http://www.eMCeeKay.nl">eMCeeKay.nl</a>) and I need to make a website for it&#8230;. Not really a problem besides that I don&#8217;t have any time to create a design.</p>
<p>So I was thinking about a easy way to update this website without spending extra time on that.</p>
<p>Because the main focus of the company is papertoys (urban papertoys), I need design or papertoy related info in my my new website ().</p>
<p>And I came with two ways to update it without extra effort: <a href="http://www.twitter.com/matthijskamstra">twitter</a> (I tweet about a lot of stuff but primarily about papertoys) and this the content on this blog (category: <a href="http://www.matthijskamstra.nl/blog/index.php/category/design/urban-papercraft/">urban-papercraft</a>).</p>
<p>I started with the Twitter part.<br />
There are two Twitter AS3 libraries that &#8220;speak&#8221; to the Twitter API: <a href="http://code.google.com/p/twitterscript/">twitterscript/</a> and <a href="http://code.google.com/p/tweetr/">tweetr/</a>.<br />
But after reading the source I concluded that it was a little bit to much: I don&#8217;t want to tweet from emceekay.nl or do searches, so that was not the way to go.</p>
<p>A little google search gave me the solution: <a href="http://www.theflashlogs.org/flash/displaying-twitter-feeds-in-flash-with-rss/" class="broken_link">http://www.theflashlogs.org/flash/displaying-twitter-feeds-in-flash-with-rss/</a>, simple using the standard rss from Twitter (in my case: <a href="http://twitter.com/statuses/user_timeline/27657030.rss" title="Matthijs Kamstra - Twitter - rss" rel="alternate" type="application/rss+xml">Matthijs Kamstra &#8211; Twitter &#8211; rss</a>).</p>
<p>The code on theflashlogs.org is pritty simple, and very easy to use.<br />
So my code is a little addition to that, I need some stuff done to the rss feed:</p>
<ul>
<li>remove &#8220;MatthijsKamstra:&#8221; form the title</li>
<li>convert <strong>@paperkraft</strong> to a link</li>
<li>convert <strong>#Mecha6</strong> to a link</li>
<li>convert <strong>http://</strong> to a link</li>
</ul>
<p>Here is my code:<br />
[as light="false" wraplines="false"]<br />
package nl.emceekay.twttr<br />
{<br />
	import flash.display.MovieClip;<br />
	import flash.events.Event;<br />
	import flash.net.URLLoader;<br />
	import flash.net.URLRequest;<br />
	import flash.text.TextField;<br />
	/**<br />
	 * // nl.emceekay.twttr.TwttrExample<br />
	 * &#8230;<br />
	 * @author Matthijs Kamstra aka [mck]<br />
	 */<br />
	public class TwttrExample extends MovieClip<br />
	{<br />
		//default: http://twitter.com/matthijskamstra<br />
		private var url:String = &quot;http://twitter.com/statuses/user_timeline/27657030.rss&quot;; </p>
<p>		private var _txt:TextField;</p>
<p>		public function TwttrExample()<br />
		{<br />
			stage.scaleMode = &quot;noScale&quot;;<br />
			stage.align = &quot;TL&quot;;</p>
<p>			// generate textfield<br />
			_txt = new TextField()<br />
			_txt.x = 10;<br />
			_txt.y = 10;<br />
           		 _txt.width = stage.stageWidth &#8211; 20;<br />
           		_txt.height =  stage.stageHeight &#8211; 20;<br />
			_txt.wordWrap = true;<br />
			_txt.multiline = true;<br />
			_txt.autoSize = &quot;left&quot;;<br />
			addChild(_txt);</p>
<p>			// start<br />
			getFeed(url);<br />
		}</p>
<p>		//////////////////////////////////////// loading rss / show rss ////////////////////////////////////////</p>
<p>		private function getFeed (inURL:String) : void<br />
		{<br />
			_txt.htmlText = &quot;getting tweets&quot;;</p>
<p>			var loader:URLLoader = new URLLoader();<br />
			loader.addEventListener(Event.COMPLETE, onFeedHandler);<br />
			loader.load(new URLRequest(inURL));<br />
		}</p>
<p>		private function onFeedHandler (e:Event):void<br />
		{<br />
			_txt.htmlText = &quot;&quot;;<br />
			var _feed:XML = new XML(e.target.data);<br />
			var _item:XMLList = _feed.channel.item;<br />
			for each (var feedItem:XML in _item){<br />
				var _title		:String = feedItem.title;<br />
				var _pubDate	:String = feedItem.pubDate;<br />
				var _link		:String = feedItem.link;</p>
<p>				_title = convertTweet(_title);</p>
<p>				_txt.htmlText += _title + &quot;&lt;br&gt;&lt;i&gt;&quot; + _pubDate + &quot;&lt;/i&gt;&lt;br&gt;&lt;br&gt;&quot;;<br />
			}<br />
		}</p>
<p>		//////////////////////////////////////// twitter specific ////////////////////////////////////////</p>
<p>		// one place to convert the tweet<br />
		private function convertTweet (inString:String):String<br />
		{<br />
			var _str:String = inString;<br />
			_str = twttrStripName(_str);<br />
			_str = twttrConvertHTTP(_str);<br />
			_str = twttrConvertMention(_str);<br />
			_str = twttrConvertHashtag(_str);<br />
			_str = twttrConvertSmileys(_str);<br />
			return _str;<br />
		}</p>
<p>		// remove the writers name from the tweet<br />
		private function twttrStripName (inString:String):String<br />
		{<br />
			var _str:String = inString;<br />
			var _charNumber:Number = _str.indexOf(&quot;:&quot;);<br />
			return _str.substr(_charNumber + 2);<br />
		}</p>
<p>		// convert http-strings to links<br />
		private function twttrConvertHTTP(inString:String):String<br />
		{<br />
			var _str:String = inString;<br />
			var _array:Array = _str.split(&quot; &quot;);<br />
			for (var i:int = 0; i &lt; _array.length; i++)<br />
			{<br />
				var _str2:String = twttrStripChar(_array[i]);<br />
				if (_array[i].indexOf(&quot;http&quot;) != -1)<br />
				{<br />
					_array[i] = &quot;&lt;u&gt;&lt;a href=&#8217;&quot; + _str2 + &quot;&#8217; target=&#8217;_blank&#8217;&gt;&quot; +_array[i] + &quot;&lt;/a&gt;&lt;/u&gt;&quot;;<br />
				}<br />
			}<br />
			return _array.join(&quot; &quot;);<br />
		}</p>
<p>		// convert mentions (@) to links<br />
		private function twttrConvertMention(inString:String):String<br />
		{<br />
			var _str:String = inString;<br />
			var _array:Array = _str.split(&quot; &quot;);<br />
			for (var i:int = 0; i &lt; _array.length; i++)<br />
			{<br />
				var _str2:String = twttrStripChar(_array[i]);<br />
				if (_array[i].substr(0, 1) == &quot;@&quot;)<br />
				{<br />
					_array[i] = &quot;&lt;u&gt;&lt;a href=&#8217;http://www.twitter.com/&quot; + _str2.split(&quot;@&quot;)[1] + &quot;&#8217; target=&#8217;_blank&#8217;&gt;&quot; +_array[i] + &quot;&lt;/a&gt;&lt;/u&gt;&quot;;<br />
				}<br />
			}<br />
			return _array.join(&quot; &quot;);<br />
		}</p>
<p>		// convert hashtags (#) to links<br />
		private function twttrConvertHashtag(inString:String):String<br />
		{<br />
			var _str:String = inString;<br />
			var _array:Array = _str.split(&quot; &quot;);<br />
			for (var i:int = 0; i &lt; _array.length; i++)<br />
			{<br />
				var _str2:String = twttrStripChar(_array[i]);<br />
				if (_array[i].substr(0, 1) == &quot;#&quot;)<br />
				{<br />
					_array[i] = &quot;&lt;u&gt;&lt;a href=&#8217;http://twitter.com/search?q=%23&quot; + _str2.split(&quot;#&quot;)[1] + &quot;&#8217; target=&#8217;_blank&#8217;&gt;&quot; +_array[i] + &quot;&lt;/a&gt;&lt;/u&gt;&quot;;<br />
				}<br />
			}<br />
			return _array.join(&quot; &quot;);<br />
		}		</p>
<p>		// TODO: [mck] convert <img src='http://www.matthijskamstra.nl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  to a smiley image<br />
		private function twttrConvertSmileys(inString:String):String<br />
		{<br />
			var _str:String = inString;<br />
			return _str;<br />
		}</p>
<p>		// remove &quot;strange&quot; characters from the end of the string<br />
		private function twttrStripChar(inString:String):String<br />
		{<br />
			var _str:String = inString;<br />
			var _charArray:Array = [',', ';', ':', ' ', '-', '_'];<br />
			for (var i:int = 0; i &lt; _charArray.length; i++)<br />
			{<br />
				if (_str.charAt(_str.length &#8211; 1) == _charArray[i]) {<br />
					_str = _str.substr(0, _str.length &#8211; 1);<br />
				}<br />
			}<br />
			return _str;<br />
		}</p>
<p>	} // end class</p>
<p>} // end package<br />
[/as]</p>
<p>Currently I have only this proof of concept, but soon I will post the example on <a href="http://www.emceekay.nl">emceekay.nl</a>&#8230;</p>
<p>Because this is part one of what I want to do, and don&#8217;t want to search for every link again, I&#8217;m posting also the WordPress link here (it&#8217;s just because I&#8217;m lazy).</p>
<p>So here the feeds I will be using:</p>
<ul>
<li><a href="http://twitter.com/statuses/user_timeline/27657030.rss" title="Matthijs Kamstra - Twitter - rss" rel="alternate" type="application/rss+xml">Matthijs Kamstra &#8211; Twitter &#8211; rss</a></li>
<li><a href="http://www.matthijskamstra.nl/blog/wp-rss2.php?cat=11" title="[mck] Urban papercraft RSS feed" rel="alternate" type="application/rss+xml">All Urban papercraft posts</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.matthijskamstra.nl/blog/index.php/2009/12/30/twitter-rss-reader-in-flash-as3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>What a Flash / ActionScript Developer needs to know</title>
		<link>http://www.matthijskamstra.nl/blog/index.php/2009/09/03/what-a-flash-actionscript-developer-needs-to-know/</link>
		<comments>http://www.matthijskamstra.nl/blog/index.php/2009/09/03/what-a-flash-actionscript-developer-needs-to-know/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 09:10:36 +0000</pubDate>
		<dc:creator>Matthijs Kamstra</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[flash developer]]></category>

		<guid isPermaLink="false">http://www.matthijskamstra.nl/blog/?p=1130</guid>
		<description><![CDATA[Yesterday I saw this post in my RSS feeds, and I just want to remember this (and make sure that I&#8217;m really a senior ) So here is a list of stuff you need to know when you say you are a senior Flash/ActionScript developer: http://pv3d.org/2009/08/28/10-things-every-senior-flash-developer-should-know/ I don&#8217;t like to regurgitate so I only show [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I saw this post in my RSS feeds, and I just want to remember this (and make sure that I&#8217;m really a senior <img src='http://www.matthijskamstra.nl/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</p>
<p>So here is a list of stuff you need to know when you say you are a senior Flash/ActionScript developer:<br />
<a href="http://pv3d.org/2009/08/28/10-things-every-senior-flash-developer-should-know/">http://pv3d.org/2009/08/28/10-things-every-senior-flash-developer-should-know/</a></p>
<p>I don&#8217;t like to regurgitate so I only show you the top 10, for examples visit the list by <a href="http://pv3d.org/2009/08/28/10-things-every-senior-flash-developer-should-know/">John Lindquist</a></p>
<ol>
<li>The Elastic Racetrack</li>
<li>FlexSDK, mxmlc, compc, and all that jazz</li>
<li>Player Events, Custom Events, Event Bubbling</li>
<li>Statements, Keywords, and Directives</li>
<li>ASDoc</li>
<li>Managing visual assets (images, fonts, CSS, etc)</li>
<li>Arrays, Collections, Dictionaries, Mapping</li>
<li>Programmatic motion (tweening, easing)</li>
<li>OOP and Coding Against Frameworks</li>
<li>Version control</li>
</ol>
<p>And after reading this I remembered gskinner had a similar list:<br />
<a href="http://www.gskinner.com/blog/archives/2009/07/flash_actionscr.html">http://www.gskinner.com/blog/archives/2009/07/flash_actionscr.html</a></p>
<p>This is a bigger list and a lot of comments, so you need to visit the list and read it and all its comments</p>
<p>Another post about the subject: &#8220;Things Every Flash Developer Should Know&#8221; &#8211;> <a href="http://gskinner.com/talks/things/">http://gskinner.com/talks/things/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthijskamstra.nl/blog/index.php/2009/09/03/what-a-flash-actionscript-developer-needs-to-know/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My first AIR app: SWF2GIF-banner &#8211; part 1</title>
		<link>http://www.matthijskamstra.nl/blog/index.php/2009/08/12/my-first-air-app-swf2gif-banner-part-1/</link>
		<comments>http://www.matthijskamstra.nl/blog/index.php/2009/08/12/my-first-air-app-swf2gif-banner-part-1/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 08:00:53 +0000</pubDate>
		<dc:creator>Matthijs Kamstra</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[animated gif]]></category>
		<category><![CDATA[flashdevelop]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[SWF]]></category>

		<guid isPermaLink="false">http://www.matthijskamstra.nl/blog/?p=1040</guid>
		<description><![CDATA[Sometimes, and I&#8217;m not very fond of them, I need to make banners&#8230;.. The animation part is not so bad, but making the different sizes&#8230;. that can be a drag. And after you made the SWF banners, you also need to make the animation in GIF. This is how I use to do it: make [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes, and I&#8217;m not very fond of them, I need to make banners&#8230;..<br />
The animation part is not so bad, but making the different sizes&#8230;. that can be a drag.<br />
And after you made the SWF banners, you also need to make the animation in GIF.</p>
<p>This is how I use to do it: </p>
<ol>
<li>make the SWF banner</li>
<li>embed it in a html page with a background color that is not in the banner itself (a border around the SWF banner helps)</li>
<li>make snapshots of the animation</li>
<li>open photoshop >> (I used a action for this part&#8230;.)</li>
<li>place all the images in one document</li>
<li>cut the browser from the screenshot</li>
<li>select the background-color reverse the selection and cut</li>
<li>make a animation from all the layers (end photoshop action)</li>
<li>save</li>
</ol>
<p>I have never made an AIR application but I think that it should be possible to make a SWF2GIF converter in AIR.</p>
<p>Stuff what I need to find out:</p>
<ul>
<li>browse for a file</li>
<li>load that file into air</li>
<li>take snapshots of the animation</li>
<li>controle the frame rate of the animation</li>
<li>make a animated gif </li>
<li>save everything</li>
<li>etc.</li>
</ul>
<p><strong>Lets start with some basic:</strong><br />
I&#8217;m still working on CS3, and it seems that AIR default is installed with CS4<br />
Installing the Adobe AIR update for Flash CS3</p>
<p>English: <a href="http://help.adobe.com/en_US/AIR/1.5/devappsflash/WS5b3ccc516d4fbf351e63e3d118666ade46-7fc3.html" class="broken_link">http://help.adobe.com/en_US/AIR/1.5/devappsflash/WS5b3ccc516d4fbf351e63e3d118666ade46-7fc3.html</a><br />
Dutch: <a href="http://help.adobe.com/nl_NL/AIR/1.5/devappsflash/WS5b3ccc516d4fbf351e63e3d118666ade46-7fc3.html">http://help.adobe.com/nl_NL/AIR/1.5/devappsflash/WS5b3ccc516d4fbf351e63e3d118666ade46-7fc3.html</a></p>
<p>You can also use FlashDevelop 3.0.1, AIR is also installed with that program and in combination with Flex sdk you don&#8217;t even need Flash.</p>
<p>Because I&#8217;m not finished with it (I will only work on it when I have to build banners) I will post now and then some parts of the code.</p>
<p>For some reason I couldn&#8217;t find the code to load SWF into AIR using &#8220;browse&#8221;.</p>
<p>[as light="false" wraplines="true"]<br />
private function openSwfFile(e:MouseEvent = null):void<br />
{<br />
	var imagesFilter:FileFilter = new FileFilter(&quot;Flash SWF&quot;, &quot;*.swf&quot;);<br />
	myFile = new File();<br />
	myFile.addEventListener(Event.SELECT, selectHandler);<br />
	myFile.browseForOpen(&quot;Open&quot;, [imagesFilter]);<br />
}</p>
<p>private function selectHandler(event:Event):void<br />
{<br />
	myFile.removeEventListener(Event.SELECT, selectHandler);<br />
	loadSWF(myFile.url);<br />
}</p>
<p>private function loadSWF(inName:String):void<br />
{<br />
	trace( &quot;Main.loadSWF &gt; inName : &quot; + inName );<br />
	mLoader = new Loader();<br />
	mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete);<br />
	mLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onErrorComplete);<br />
	mLoader.load(new URLRequest(inName));<br />
}<br />
private function onLoaderComplete(e:Event):void { startOnEnterFrameHandler(); }<br />
private function onErrorComplete(e:IOErrorEvent):void { trace( &quot;Main.onErrorComplete &gt; e : &quot; + e ); }</p>
<p>private function startOnEnterFrameHandler():void<br />
{<br />
	_movie.addChild(mLoader);<br />
	// _movie.addEventListener(Event.ENTER_FRAME , onEnterFrameHandler);<br />
}<br />
[/as]<br />
just use a button to activate.</p>
<p>I know the code is not complete&#8230; and that some classes have strange names&#8230; it&#8217;s work in progress.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthijskamstra.nl/blog/index.php/2009/08/12/my-first-air-app-swf2gif-banner-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Six screens Flash animation</title>
		<link>http://www.matthijskamstra.nl/blog/index.php/2009/07/29/six-screens-flash-animation/</link>
		<comments>http://www.matthijskamstra.nl/blog/index.php/2009/07/29/six-screens-flash-animation/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 08:00:21 +0000</pubDate>
		<dc:creator>Matthijs Kamstra</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash experiments]]></category>
		<category><![CDATA[adobe flash]]></category>
		<category><![CDATA[flash animation]]></category>
		<category><![CDATA[flash application]]></category>
		<category><![CDATA[fullscreen]]></category>
		<category><![CDATA[kiosk]]></category>
		<category><![CDATA[monitors]]></category>
		<category><![CDATA[multimedia installations]]></category>
		<category><![CDATA[screens]]></category>

		<guid isPermaLink="false">http://www.matthijskamstra.nl/blog/?p=1058</guid>
		<description><![CDATA[I currently working on a project where a Flash Application is played on six (6!) screens. The screens are 1366&#215;768 which must be (a least mine) the biggest Flash animation (8196px wide and 768pixels high) The problem with Flash is that it will not go full-screen on more then on screen. With some hacking you [...]]]></description>
			<content:encoded><![CDATA[<p>I currently working on a project where a Flash Application is played on six (6!) screens.<br />
The screens are 1366&#215;768 which must be (a least mine) the biggest Flash animation (8196px wide and 768pixels high)<br />
The problem with Flash is that it will not go full-screen on more then on screen. With some <a href="http://www.gavinr.com/2009/04/18/dual-monitors-full-screen-flash/">hacking</a> you can get it to open full-screen on your secondary monitor but not 2 monitors.</p>
<p>I hoped to find the solution in AIR, but that has a 2880px limit (<a href="http://bugs.adobe.com/jira/browse/SDK-14431">read here</a>)</p>
<p>After some googling I found <a href="http://gizmoware.net/flashdancer/">Flash Dancer by Gizmoware</a>.</p>
<p><img src="http://gizmoware.net/flashdancer/screencap1.jpg" alt="Flash Dancer by Gizmoware" /></p>
<p>And who can explain it better then the <strong>Flash Dancer</strong> creator himself:</p>
<blockquote><p>Flash Dancer gives Adobe Flash multi-monitor support. Want to play your Flash file fullscreen on monitor 2? Now you can. Want it to span fullscreen over 4 monitors? No problem with Flash Dancer. This is extremely useful in kiosk type applications, large scale multimedia installations, restaurants displaying menus on remote monitors, etc. Its been confirmed to work on a 6 monitor setup without a burp.</p></blockquote>
<p><em>(I&#8217;m the one that has confirmed that it works on Vista and on 6 monitors <img src='http://www.matthijskamstra.nl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</em></p>
<p>So what can I tell more:</p>
<p>[as highlight="4" light="false" wraplines="true"]<br />
// Specifies that the size of the application be fixed, so that it remains unchanged even as the size of the player window changes.<br />
stage.scaleMode 	= StageScaleMode.NO_SCALE;<br />
stage.align 		= StageAlign.TOP_LEFT;<br />
stage.quality 	= StageQuality.LOW; // important: the image will be cut off when you use HIGH<br />
[/as]</p>
<p>And of course you need to tile a pattern, but I&#8217;ll leave that up to you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthijskamstra.nl/blog/index.php/2009/07/29/six-screens-flash-animation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FlashDevelop 3.0.0 released</title>
		<link>http://www.matthijskamstra.nl/blog/index.php/2009/06/17/flashdevelop-3-0-0-released/</link>
		<comments>http://www.matthijskamstra.nl/blog/index.php/2009/06/17/flashdevelop-3-0-0-released/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 20:23:05 +0000</pubDate>
		<dc:creator>Matthijs Kamstra</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Open source / Freeware]]></category>
		<category><![CDATA[Tools of the trade]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[actionscript 2]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[flashdevelop]]></category>
		<category><![CDATA[FlashDeveloper]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[SE|PY]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.matthijskamstra.nl/blog/?p=1035</guid>
		<description><![CDATA[My favorite open source project ever, FlashDevelop has released: FlashDevelop 3.0.0 RTM (English, 4MB) . I started with coding in the Flash IDE, when I realized that there are better programs to code in I started working with SE&#124;PY (ActionScript 2 only). I really loved that program, but it never made it to ActionScript 3 [...]]]></description>
			<content:encoded><![CDATA[<p>My favorite open source project ever, <a href='http://www.flashdevelop.org/wikidocs/index.php?title=Main_Page'>FlashDevelop</a> has released: FlashDevelop 3.0.0 RTM (English, 4MB) .</p>
<p>I started with coding in the Flash IDE, when I realized that there are better programs to code in I started working with SE|PY (ActionScript 2 only). I really loved that program, but it never made it to ActionScript 3 and so I tried FlashDevelop. I have never regretted it, it a beautiful piece of work and I can&#8217;t work without it.<br />
So if your pockets aren&#8217;t deep, and want to become a better AS2/AS3 programmer. you should try this program. </p>
<p>The only sad thing is that it&#8217;s Windows only.</p>
<p><img src="http://flashdevelop.org/wikidocs/images/tour/0a-interface.png" width="500px" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthijskamstra.nl/blog/index.php/2009/06/17/flashdevelop-3-0-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

