<?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>ThoughtFaqtory Blog &#187; Flash Builder</title>
	<atom:link href="http://thoughtfaqtory.com/blog/category/adobe/flash-builder/feed/" rel="self" type="application/rss+xml" />
	<link>http://thoughtfaqtory.com/blog</link>
	<description>Rich Internet Applications [Adobe Flex, Adobe AIR, Flash Platform, Flash Mobile, UX, iPhone, iPad, Android, Java]</description>
	<lastBuildDate>Wed, 28 Jul 2010 09:12:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Flex 4 beta in a Week on Adobe Developer Connection</title>
		<link>http://thoughtfaqtory.com/blog/2009/11/04/flex-4-beta-in-a-week-on-adobe-developer-connection/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=flex-4-beta-in-a-week-on-adobe-developer-connection</link>
		<comments>http://thoughtfaqtory.com/blog/2009/11/04/flex-4-beta-in-a-week-on-adobe-developer-connection/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 08:59:52 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://thoughtfaqtory.com/blog/?p=247</guid>
		<description><![CDATA[If you are a Flex developer or wanting to learn Flex, i highly recommend you look at Adobe&#8217;s video training course called Flex 4 beta in a Week. The course is broken up over 5 days as follows: Day 1 &#8211; Exploring the basic, Introducing object-orientated programming and Understanding components and layouts Day 2 &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.adobe.com/devnet/images/160x160/flex_160x160.jpg" alt="" /></p>
<p>If you are a Flex developer or wanting to learn Flex, i highly recommend you look at <a id="aptureLink_1ORA2tFeU4" href="http://en.wikipedia.org/wiki/Adobe%20Systems">Adobe&#8217;s</a> video training course called <a title="Adobe Flex 4 beta in a Week" href="http://www.adobe.com/devnet/flex/videotraining/flex4beta/index.html" target="_blank">Flex 4 beta in a Week</a>.</p>
<p>The course is broken up over 5 days as follows:</p>
<p><strong>Day 1</strong> &#8211; Exploring the basic, Introducing object-orientated programming and Understanding components and layouts<br />
<strong>Day 2</strong> &#8211; Handling events, Validating and formatting data, Navigating application content and Animating components and states<br />
<strong>Day 3</strong> &#8211; Controlling text display, Controlling visual display and CSS and Skinning Spark components<br />
<strong>Day 4</strong> &#8211; Extending events, Accessing remote data and Creating a typed data model<br />
<strong>Day 5</strong> &#8211; Displaying data with the DataGroup container, Displaying Data with the DataGrid control and Deploying Flex and AIR Applications</p>
<p>Seasoned Flex developers may only find some of these areas useful, such as the Skinning Spark components and Displaying data with the DataGroup container (Coming soon).</p>
]]></content:encoded>
			<wfw:commentRss>http://thoughtfaqtory.com/blog/2009/11/04/flex-4-beta-in-a-week-on-adobe-developer-connection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex, PNGs, and PDFs&#8230;</title>
		<link>http://thoughtfaqtory.com/blog/2009/10/14/flex-pngs-and-pdfs/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=flex-pngs-and-pdfs</link>
		<comments>http://thoughtfaqtory.com/blog/2009/10/14/flex-pngs-and-pdfs/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 09:05:23 +0000</pubDate>
		<dc:creator>Cavan</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://thoughtfaqtory.com/blog/?p=145</guid>
		<description><![CDATA[At ThoughtFaqtory we are continually encouraged to think outside of the box when challenges are presented.  A challenge was set recently by a pretty innocuous requirement from one of our clients. This project required me to implement functionality that would allow the end user to export groups of images to PDF. The PDF needed to [...]]]></description>
			<content:encoded><![CDATA[<p>At <a title="ThoughtFaqtory" href="http://thoughtfaqtory.com" target="_blank">ThoughtFaqtory</a> we are continually encouraged to think outside of the box when challenges are presented.  A challenge was set recently by a pretty innocuous requirement from one of our clients.</p>
<p>This project required me to implement functionality that would allow the end user to export groups of images to PDF. The PDF needed to be high quality, 300 ppi (pixels per inch). After some searching I came across the <a title="AilvePDF" href="http://www.alivepdf.org/" target="_blank">AlivePDF</a> website which appeared to be perfect for my requirements. Initially after using <a title="AilvePDF" href="http://www.alivepdf.org/" target="_blank">AlivePDF</a> to generate a few PDFs, I couldn&#8217;t believe how easy it was to use and I thought that I had found Utopia. My joy however was short lived after the following error message was received:</p>
<p style="text-align: center"><img class="size-full wp-image-158 aligncenter" src="http://thoughtfaqtory.com/blog/wp-content/uploads/2009/10/error.PNG" alt="error" width="293" height="79" /></p>
<p><a title="AilvePDF" href="http://www.alivepdf.org/" target="_blank">AlivePDF</a> had no alpha channel support for PNGs and the PNG encoder provided by Adobe always returns a PNG with an alpha channel. Even if you turned off the transparency you will get back a 32 bit ARGB PNG.</p>
<p>I continued searching for someone who had a method of successfully removing the alpha channel but my search proved fruitless. Hence I decided to do my own research into PNGs and found the following:</p>
<p>A valid PNG consists of:</p>
<p style="padding-left: 30px">PNG signature<br />
IHDR chunk (only one)<br />
IDAT chunk (one or more)<br />
IEND chunk (only one)</p>
<p>The PNG signature:</p>
<p style="padding-left: 30px">89 50 4E 47 0D 0A 1A 0A.</p>
<p>The IHDR image header:</p>
<table style="height: 170px;" border="0" cellspacing="0" cellpadding="4" width="670" rules="NONE">
<col width="100"></col>
<col width="100"></col>
<tbody>
<tr>
<td width="100" bgcolor="#d9d9d9">Width:</td>
<td width="100" bgcolor="#d9d9d9">4 bytes</td>
</tr>
<tr>
<td width="100">Height:</td>
<td width="100">4 bytes</td>
</tr>
<tr>
<td width="100" bgcolor="#d9d9d9">Bit depth:</td>
<td width="100" bgcolor="#d9d9d9">1 byte</td>
</tr>
<tr>
<td width="100">Colour type:</td>
<td width="100">1 byte</td>
</tr>
<tr>
<td width="100" bgcolor="#d9d9d9">Compression method:</td>
<td width="100" bgcolor="#d9d9d9">1 byte</td>
</tr>
<tr>
<td width="100">Filter method:</td>
<td width="100">1 byte</td>
</tr>
<tr>
<td width="100" bgcolor="#d9d9d9">Interlace method:</td>
<td width="100" bgcolor="#d9d9d9">1 byte</td>
</tr>
</tbody>
</table>
<p>The IDAT chunks contain the image data.<br />
The IEND chunk marks the end of the PNG.</p>
<p>The colour type under the IHDR chunk needs to be mentioned here as that is where the image type is defined.</p>
<table style="height: 146px;" border="0" cellspacing="0" cellpadding="4" width="670" rules="NONE">
<col width="323"></col>
<col width="324"></col>
<tbody>
<tr valign="top">
<td width="323" bgcolor="#8db3e2"><strong>Image type</strong></td>
<td width="324" bgcolor="#8db3e2"><strong>Colour type</strong></td>
</tr>
<tr valign="top">
<td width="323">Greyscale</td>
<td width="324">0</td>
</tr>
<tr valign="top">
<td width="323" bgcolor="#d9d9d9">True colour</td>
<td width="324" bgcolor="#d9d9d9">2</td>
</tr>
<tr valign="top">
<td width="323">Indexed colour</td>
<td width="324">3</td>
</tr>
<tr valign="top">
<td width="323" bgcolor="#d9d9d9">Grey scale with alpha</td>
<td width="324" bgcolor="#d9d9d9">4</td>
</tr>
<tr valign="top">
<td width="323">True colour with alpha</td>
<td width="324">6</td>
</tr>
</tbody>
</table>
<p>After familiarizing myself with PNGs, I revisited Adobe&#8217;s PNGEncoder.as class again and eventually managed to make certain changes that allowed the removal of the alpha channel all together.</p>
<p>After all the research this ended up being a lot easier than I had originally thought, all that I needed to do was change the colour type and extract the RGB values. Adobe&#8217;s colour type was 6 (True colour with alpha) I changed it to 2 (True colour only). Next I needed to isolate and extract the RGB values, this was done with a bitwise right shift operation and a bitwise AND operation.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #009900;">// Build IHDR chunk</span>
&nbsp;
<span style="color: #6699cc; font-weight: bold;">var</span> IHDR<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">ByteArray</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">ByteArray</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
IHDR.<span style="color: #004993;">writeInt</span><span style="color: #000000;">&#40;</span>w<span style="color: #000000;">&#41;</span>;
IHDR.<span style="color: #004993;">writeInt</span><span style="color: #000000;">&#40;</span>h<span style="color: #000000;">&#41;</span>;
IHDR.<span style="color: #004993;">writeUnsignedInt</span><span style="color: #000000;">&#40;</span>0x08020000<span style="color: #000000;">&#41;</span>; <span style="color: #009900;">// True colour (no alpha)</span>
IHDR.<span style="color: #004993;">writeByte</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span>;
writeChunk<span style="color: #000000;">&#40;</span>png, 0x49484452, IHDR<span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #009900;">// Isolate RGB values</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #6699cc; font-weight: bold;">var</span> j<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">int</span> = <span style="color: #000000; font-weight:bold;">0</span>; j <span style="color: #000000; font-weight: bold;">&lt;</span> w; j<span style="color: #000000; font-weight: bold;">++</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
	p = img.<span style="color: #004993;">getPixel</span><span style="color: #000000;">&#40;</span>j, i<span style="color: #000000;">&#41;</span>;
	IDAT.<span style="color: #004993;">writeByte</span><span style="color: #000000;">&#40;</span>p <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight:bold;">16</span> <span style="color: #000000; font-weight: bold;">&amp;</span> 0xFF<span style="color: #000000;">&#41;</span>;
	IDAT.<span style="color: #004993;">writeByte</span><span style="color: #000000;">&#40;</span>p <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight:bold;">8</span> <span style="color: #000000; font-weight: bold;">&amp;</span> 0xFF<span style="color: #000000;">&#41;</span>;
	IDAT.<span style="color: #004993;">writeByte</span><span style="color: #000000;">&#40;</span>p <span style="color: #000000; font-weight: bold;">&amp;</span> 0xFF<span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p style="margin-bottom: 0in">The changes implemented resulted in the removal of the Alpha channel which allowed me to successfully embedded the encoded PNG image into a PDF with <a title="AilvePDF" href="http://www.alivepdf.org/" target="_blank">AlivePDF</a>. This was the first of many problems I had working with PDFs, maybe you will get to read about the others in the not too distant future. Attached below is a sample application that will embed a PNG into a PDF.</p>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_pngalpha1_1485888822"
			class="flashmovie"
			width="630"
			height="400">
	<param name="movie" value="http://thoughtfaqtory.com/blog/wp-content/uploads/2009/10/pngalpha1.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://thoughtfaqtory.com/blog/wp-content/uploads/2009/10/pngalpha1.swf"
			name="fm_pngalpha1_1485888822"
			width="630"
			height="400">
	<!--<![endif]-->
		<a href="http://adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>

	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
]]></content:encoded>
			<wfw:commentRss>http://thoughtfaqtory.com/blog/2009/10/14/flex-pngs-and-pdfs/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Learn to Use Flash Catalyst</title>
		<link>http://thoughtfaqtory.com/blog/2009/06/03/learn-to-use-flash-catalyst/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=learn-to-use-flash-catalyst</link>
		<comments>http://thoughtfaqtory.com/blog/2009/06/03/learn-to-use-flash-catalyst/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 09:14:37 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[Flash Catalyst]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://thoughtfaqtory.com/blog/?p=26</guid>
		<description><![CDATA[One of my colleagues at ThoughtFaqtory found this nice resource &#8220;Learn to Use Flash Catalyst&#8221; on Adobe Labs web site. I have listed all the tutorials, videos and screencasts below. Get Started Learn about Flash Catalyst Video: Introducing Flash Catalyst Discover what you can do with this new interaction design tool for creating interactive experiences. [...]]]></description>
			<content:encoded><![CDATA[<p>One of my colleagues at <a title="ThoughtFaqtory" href="http://www.thoughtfaqtory.com" target="_blank">ThoughtFaqtory</a> found this nice resource <a title="Learn to Use Flash Catalyst" href="http://labs.adobe.com/technologies/flashcatalyst/tutorials/" target="_blank"><em>&#8220;Learn to Use Flash Catalyst&#8221;</em></a> on Adobe Labs web site.</p>
<p>I have listed all the tutorials, videos and screencasts below.</p>
<div id="attachment_45" class="wp-caption alignnone" style="width: 360px"><a href="http://labs.adobe.com/technologies/flashcatalyst/"><img class="size-full wp-image-45" title="Adobe Flash Catalyst" src="http://thoughtfaqtory.com/blog/wp-content/uploads/2009/06/flash_catalyst.png" alt="Adobe Flash Catalyst" width="350" height="351" /></a><p class="wp-caption-text">Adobe Flash Catalyst</p></div>
<p><strong>Get Started<br />
Learn about Flash Catalyst</strong></p>
<ul>
<li>Video: <a href="http://labs.adobe.com/technologies/flashcatalyst/tutorials/overview/" target="_blank">Introducing Flash Catalyst</a><br />
Discover what you can do with this new interaction design tool for creating interactive experiences.</li>
<li>Video: <a href="http://labs.adobe.com/technologies/flashcatalyst/tutorials/wirefr/" target="_blank">Wire Framing in Flash Catalyst</a><br />
Learn how to quickly wireframe a design concept in Flash Catalyst.</li>
<li>Notes: <a href="http://www.adobe.com/go/learn_fc_new_features_en" target="_blank">Learn about Flash Catalyst</a><br />
Refer to these feature notes that detail what you can do with this interaction design tool.</li>
</ul>
<p><strong>Start Building Your First Flash Catalyst Application</strong></p>
<ul>
<li>Video: <a href="http://labs.adobe.com/technologies/flashcatalyst/tutorials/firstapp/" target="_blank">Create your First Application with Flash Catalyst</a><br />
Let Ty Voilter step you through the process of prototyping an interactive application.</li>
<li>Tutorial: <a href="http://www.adobe.com/devnet/flashcatalyst/articles/get_started_with_flash_catalyst.html" target="_blank">Start Designing in Flash Catalyst</a><br />
Learn to create a simple SWF content from a Photoshop design.</li>
<li>Tutorial: <a href="http://www.adobe.com/devnet/flashcatalyst/articles/building_datacentric_app_flashcast_flashbuilder.html" target="_blank">Build a Data-Centric Application Using Flash Catalyst and Flash Builder 4</a><br />
Learn to create a browser-based address book application from an Illustrator design.</li>
</ul>
<p><strong>Get Better<br />
Explore Flash Catalyst Workflows</strong></p>
<ul>
<li>Video: <a href="http://labs.adobe.com/technologies/flashcatalyst/tutorials/fwexport/" target="_blank">Exporting from Fireworks CS4 to Flash Catalyst</a><br />
Presenter: Doug Winnie; Adobe</li>
<li>Video: <a href="http://labs.adobe.com/technologies/flashcatalyst/tutorials/fw/" target="_blank">Use Native Fireworks CS4 Files in Flash Catalyst</a><br />
Presenter: Doug Winnie; Adobe</li>
</ul>
<p><strong>Work with Flash Catalyst</strong></p>
<ul>
<li>Video: <a href="http://labs.adobe.com/technologies/flashcatalyst/tutorials/datalist/" target="_blank">Create a Data List in Flash Catalyst</a><br />
Presenter: Nate Bishop; Adobe</li>
<li>Video: <a href="http://labs.adobe.com/technologies/flashcatalyst/tutorials/animate/" target="_blank">Create Animations in Flash Catalyst</a><br />
Presenter: Ty Voilter; Adobe</li>
<li>Video: <a href="http://labs.adobe.com/technologies/flashcatalyst/tutorials/objects/" target="_blank">Distribute Objects to States with Flash Catalyst</a><br />
Presenter: Doug Winnie; Adobe</li>
<li>Video: <a href="http://labs.adobe.com/technologies/flashcatalyst/tutorials/libraries/" target="_blank">Sharing Flash Catalyst Libraries</a><br />
Presenter: Doug Winnie; Adobe</li>
</ul>
<p><strong>Learn from the Community</strong></p>
<ul>
<li>Video: <a href="http://www.lynda.com/flashcatalyst" target="_blank">Flash Catalyst Preview</a><br />
Presenter: Mordy Golding; Lynda.com</li>
<li>Screencast: <a href="http://www.gotoandlearn.com/play?id=110" target="_blank">Using Flash Catalyst and Flex 4 beta 1 – Part 1:  Design a Twitter search app</a><br />
Presenter: Lee Brimelow; gotoAndLearn()</li>
<li>Screencast: <a href="http://www.gotoandlearn.com/play?id=111" target="_blank">Using Flash Catalyst and Flex 4 beta 1 – Part 2: Hook up the app to live data</a><br />
Presenter: Lee Brimelow; gotoAndLearn()</li>
<li>Screencast: <a href="http://www.insideria.com/2009/06/flash-catalyst-beta-1-top-bran.html" target="_blank">Introducing Flash Catalyst – Part 1: Good practices for preparing Illustrator files</a><br />
Presenter: Garth Braithwaite; InsideRIA</li>
<li>Screencast: <a href="http://www.insideria.com/2009/06/flash-catalyst-beta-1-top-bran-1.html" target="_blank">Introducing Flash Catalyst – Part 2: Import and export artwork and libraries</a><br />
Presenter: Garth Braithwaite; InsideRIA</li>
<li>Tutorial: <a href="http://www.peachpit.com/articles/article.aspx?p=1352541" target="_blank">Adobe Flash Catalyst: A Designer&#8217;s Ticket to the Interactive World</a><br />
Andrew Faulkner; Peachpit</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://thoughtfaqtory.com/blog/2009/06/03/learn-to-use-flash-catalyst/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
