<?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>Avocado Blog</title>
	<atom:link href="http://www.avocado.fi/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.avocado.fi/blog</link>
	<description>Zen and the Art of Flash Development</description>
	<lastBuildDate>Thu, 14 Apr 2011 07:52:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>[Style] must annotate a class</title>
		<link>http://www.avocado.fi/blog/2011/04/style-must-annotate-a-class/</link>
		<comments>http://www.avocado.fi/blog/2011/04/style-must-annotate-a-class/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 07:49:03 +0000</pubDate>
		<dc:creator>Jiinus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[custom styles]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[mx_internal]]></category>

		<guid isPermaLink="false">http://www.avocado.fi/?p=94</guid>
		<description><![CDATA[I recently tried to extend Flex UITextField -component to add support for specifying filters through css. I tried to specify custom [Style] metadata information and came across the problem where Flex compiler complains that "[Style] must annotate a class". I still have no clue what it means, but I got rid of the error by [...]]]></description>
			<content:encoded><![CDATA[<p>I recently tried to extend Flex UITextField -component to add support for specifying filters through css. I tried to specify custom [Style] metadata information and came across the problem where Flex compiler complains that "[Style] must annotate a class". I still have no clue what it means, but I got rid of the error by adding "use namespace mx_internal" <strong>above</strong> my custom style definitions so that the beginning of the code looks like this:</p>
<p><code><br />
package fi.avocado.display<br />
{<br />
	import mx.core.UITextField;<br />
	import mx.core.mx_internal;</p>
<p>	use namespace mx_internal;</p>
<p>	/**<br />
	 * Text outer drop shadow<br />
	 */<br />
	[Style(name="textOuterShadow", type="String", inherit="yes", defaultValue="none")]</p>
<p>	/**<br />
	 * Text inner drop shadow<br />
	 */<br />
	[Style(name="textInnerShadow", type="String", inherit="yes", defaultValue="none")]</p>
<p>	public class FxUITextField extends UITextField<br />
	{<br />
		etc...<br />
</code></p>
<p>Just a quick note, hope that it saves someone a few hours of wondering... <img src='http://www.avocado.fi/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.avocado.fi/blog/2011/04/style-must-annotate-a-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video GPU support in Flash</title>
		<link>http://www.avocado.fi/blog/2010/09/video-gpu-support-in-flash/</link>
		<comments>http://www.avocado.fi/blog/2010/09/video-gpu-support-in-flash/#comments</comments>
		<pubDate>Mon, 27 Sep 2010 23:24:11 +0000</pubDate>
		<dc:creator>Jiinus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.avocado.fi/?p=92</guid>
		<description><![CDATA[The long awaited feature, GPU processing support is coming to Flash. Well, just to play video, but still. Just saw 1080p graphics overlaid video playing at 14% CPU usage. Which was nice.]]></description>
			<content:encoded><![CDATA[<p>The long awaited feature, GPU processing support is coming to Flash. Well, just to play video, but still. Just saw 1080p graphics overlaid video playing at 14% CPU usage. Which was nice. <img src='http://www.avocado.fi/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.avocado.fi/blog/2010/09/video-gpu-support-in-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sweet hidden debug information&#8230;</title>
		<link>http://www.avocado.fi/blog/2010/08/sweet-hidden-debug-information/</link>
		<comments>http://www.avocado.fi/blog/2010/08/sweet-hidden-debug-information/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 22:37:16 +0000</pubDate>
		<dc:creator>Jiinus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.avocado.fi/2010/08/sweet-hidden-debug-information/</guid>
		<description><![CDATA[My whole world of AS3 debugging just got turned around... http://jpauclair.net/2010/02/10/mmcfg-treasure/ Thank you for this great article Jean-Philippe!]]></description>
			<content:encoded><![CDATA[<p>My whole world of AS3 debugging just got turned around...</p>
<p><a href="http://jpauclair.net/2010/02/10/mmcfg-treasure/">http://jpauclair.net/2010/02/10/mmcfg-treasure/</a></p>
<p>Thank you for this great article Jean-Philippe!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.avocado.fi/blog/2010/08/sweet-hidden-debug-information/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing ANT and Subclipse to Flash Builder release version</title>
		<link>http://www.avocado.fi/blog/2010/04/installing-ant-and-subclipse-to-flash-builder-release-version/</link>
		<comments>http://www.avocado.fi/blog/2010/04/installing-ant-and-subclipse-to-flash-builder-release-version/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 07:56:54 +0000</pubDate>
		<dc:creator>Jiinus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.avocado.fi/?p=68</guid>
		<description><![CDATA[The plug-in installation process has been changed a bit in the release version of the Flash Builder since it ships with the Galileo release of Eclipse. Here's how to install ANT and Subclipse into the release version of the Flash Builder.]]></description>
			<content:encoded><![CDATA[<p>Oh my, it's been too long since I've written my previous blog post. Sorry about that. Anyway, I installed the release version of the Flash Builder and it seems to live up to it's promises. At least the most annoying bugs are gone, and overall the product offers a huge improvement to the Flash Development workflow. There was one issue though... the Beta release was built onto the earlier Eclipse version, but the release version comes is built on the Ecplise Galileo release. And at least in my installation the software update site list was empty. So installing ANT or Subclipse (the two most important plug-ins we use all the time) follows a slightly different route than in the beta version. So without further ado, here's how it goes:</p>
<p>Installing ANT on the Flash Builder (release version):</p>
<p>Go to Help > Install new software...<br />
<img src="http://www.avocado.fi/blog/wp-content/uploads/2010/04/1_help_install_software.jpg" alt="" title="1_help_install_software" width="264" height="308" class="size-full wp-image-69" /></p>
<p>Click Add... to add a new software update site<br />
<img src="http://www.avocado.fi/blog/wp-content/uploads/2010/04/2_add_site.jpg" alt="" title="2_add_site" width="512" height="510" class="size-full wp-image-70" /></p>
<p>Give the site a name "<code>Eclipse Galileo releases</code>" and location "<code>http://download.eclipse.org/releases/galileo</code>"<br />
<img src="http://www.avocado.fi/blog/wp-content/uploads/2010/04/3_add_site_galileo.jpg" alt="" title="3_add_site_galileo" width="356" height="140" class="size-full wp-image-71" /></p>
<p>Select the site and find "Web, XML and Java EE Development". Open it.<br />
Select "Eclipse Java EE Developer Tools" and put a check in front of it.<br />
If there are more than one of those, just select the first one.<br />
<img src="http://www.avocado.fi/blog/wp-content/uploads/2010/04/4_java_ee_tools.jpg" alt="" title="4_java_ee_tools" width="504" height="560" class="size-full wp-image-72" /></p>
<p>Click Next, accept the terms and off you go!</p>
<p>Installing Subclipse is done in pretty much the same way</p>
<p>- Go to Help > Install new software...<br />
- Click Add... to add a new software update site<br />
- Give the site a name <code>"Subclipse 1.6.x</code>". The Location is "<code>http://subclipse.tigris.org/update_1.6.x</code>"<br />
- This is basically what you need:<br />
<img src="http://www.avocado.fi/blog/wp-content/uploads/2010/04/6_subclipse_options.jpg" alt="" title="6_subclipse_options" width="510" height="509" class="size-full wp-image-74" /></p>
<p>- Click Next, accept the terms and off you go!</p>
<p>Hope this helps you to transform more painlessly to the release version of the FB.</p>
<p>Cheers!<br />
- Joonas</p>
]]></content:encoded>
			<wfw:commentRss>http://www.avocado.fi/blog/2010/04/installing-ant-and-subclipse-to-flash-builder-release-version/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash goes mobile (yes, iPhone too)</title>
		<link>http://www.avocado.fi/blog/2009/10/flash-goes-mobile-yes-iphone-too/</link>
		<comments>http://www.avocado.fi/blog/2009/10/flash-goes-mobile-yes-iphone-too/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 22:43:46 +0000</pubDate>
		<dc:creator>Jiinus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.avocado.fi/?p=65</guid>
		<description><![CDATA[I'm pretty excited about the recent news from Adobe. Flash Player 10.1 will become available for all the major mobile devices (Symbian S60, Windows Mobile, Android and Palm webOS) and yesterday they announced at Adobe MAX that it will be available on the iPhone too. Well, iPhone won't be seeing FP plugin for the browser, [...]]]></description>
			<content:encoded><![CDATA[<p>I'm pretty excited about the recent news from Adobe. Flash Player 10.1 will become available for all the major mobile devices (Symbian S60, Windows Mobile, Android and Palm webOS) and yesterday they announced at Adobe MAX that it will be available on the iPhone too. Well, iPhone won't be seeing FP plugin for the browser, which is a huge minus, but nevertheless, we can build stand-alone applications with it! So hopefully we get to see (and make) some pretty kick ass mobile applications pretty soon...</p>
<p>Read more from the Flash Magazine about <a href="http://www.flashmagazine.com/news/detail/new_beta_releases_on_adobe_labs/" target="_blank">New Flash Player info and Beta releases on Adobe Labs</a> and <a href="http://www.flashmagazine.com/news/detail/flash_for_the_iphone/" target="_blank">Flash for the IPhone!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.avocado.fi/blog/2009/10/flash-goes-mobile-yes-iphone-too/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamically compiling assets to an SWC file</title>
		<link>http://www.avocado.fi/blog/2009/10/dynamically-compiling-assets-to-an-swc-file/</link>
		<comments>http://www.avocado.fi/blog/2009/10/dynamically-compiling-assets-to-an-swc-file/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 12:51:12 +0000</pubDate>
		<dc:creator>Jiinus</dc:creator>
				<category><![CDATA[AS3 Classes]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[asset]]></category>
		<category><![CDATA[dynamic]]></category>
		<category><![CDATA[flash builder]]></category>
		<category><![CDATA[flex builder]]></category>
		<category><![CDATA[swc]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://www.avocado.fi/?p=52</guid>
		<description><![CDATA[Although the projects I usually work on are quite code-based, there are always some number of visual assets that need to be included in the project. As the people making these things probably know, there are basically two methods of including these assets into the project at design time: using the embed -metatag, or compiling [...]]]></description>
			<content:encoded><![CDATA[<p>Although the projects I usually work on are quite code-based, there are always some number of visual assets that need to be included in the project. As the people making these things probably know, there are basically two methods of including these assets into the project at design time: using the embed -metatag, or compiling the assets into an SWC -file and linking that into your project.</p>
<p>I generally like the SWC -method better because it gives you better code hinting and strong typing, and it preserves the possible actionscript code in case there are swf files being linked. An SWC-file is basically a renamed zip file containing the compiled SWF and an XML-file that defines the stuff the SWF includes. You may try to unzip SWC:s with a regular zip-program to find out what it actually contains.</p>
<p>The problem with SWC:s is that they are binary files. I use SVN version control in all my projects, and binary files are basically unmanageable by the SVN server. It can see which version of the file was modified last, but combining two different binary files together is impossible for it. This is no problem when coding solo, but when there are multiple developers working on the same project, problems will occur. For example, if Mr. White adds an asset to the SWC, and Mr. Orange adds another asset at the same time, Mr. White commits his changes to the version control, and Mr. Orange commits shortly after, Mr. White's asset will be gone, as the SWC that Mr. Orange committed is the latest modified file, and the version control only sees that as the latest version.</p>
<p>This problem can usually be tackled by frequent commit/update from the version control and keeping tight contact with other developers, but it still allows mistakes to happen, and usually quite catastrophic ones, too. So what to do...</p>
<p>I've never really gotten around to use Ant tasks. I have been aware of the technology, but I've never seen any actual benefit of using them, until now. If you're not familiar with Ant, it's basically a way to script the compiler's build process with XML-files and Java. More information about using Ant in Flex Builder can be found from the <a href="http://www.adobe.com/devnet/flex/articles/flex_ant_pt1_02.html" target="_blank">Adobe Flex 3 Help</a>.</p>
<p>So anyway, one sunny morning these two things came to my mind at the same time and I realized I could use Ant to dynamically compile an SWC file from files in a given directory. This would eliminate the need to:</p>
<ul>
<li>Open the Flash IDE at all (which is a huge plus) <img src='http://www.avocado.fi/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>Constantly commit/update changes to version control (although you should still do that)</li>
<li>Keep tight track of the assets embedded in the SWC and watch that you don't overwrite what anyone else might have changed</li>
</ul>
<p>Basically, when you would want to add an asset, you would just add it to the given folder and build the SWC again with the Ant task, and if someone else commits changes to the SWC at the same time, it doesn't matter. Both of your assets are commited and in the version control, so you both just build the SWC again.</p>
<p>I'm aware that I'm not the first one who has thought about this approach, but when I googled for available solutions, I couldn't find anything that would be generally suitable for all kinds of projects, and most importantly, all the solutions handled only image files. As I need the same kind of behavior for both image and sound files, I decided to write my very first Ant-task (beer!). It came out quite nice, so I decided also to share it.</p>
<p>If you want to use this task to handle your assets, the first thing you need to do is to install the support for Ant-tasks. <a href="http://www.adobe.com/devnet/flex/articles/flex_ant_pt1_02.html" target="_blank">Here is the tutorial</a> for Flex/Flash Builder. If you're using Eclipse/FDT/something else, google can help you. Just search</p>
<p><span style="color: #888888;"><em>install ant &lt;your favorite development tool&gt;</em></span></p>
<p>Installing and using this Ant-task is quite easy, and there is a readme file included in the package which has these same instructions:</p>
<ol>
<li>Install the Ant support</li>
<li>Unzip the package and copy the contents of lib-directory into the folder where you would normally place your swc-files.</li>
<li>This task requires the Ant Contrib add-on, so copy ant-contrib-1.0b3.jar to your Flex Builder's ant/lib library. Usually that's something like /Applications/Flex Builder/sdks/3.2.0/ant/lib</li>
<li>In Flex/Flash Builder Add FLEX_HOME environment variable to your environment variables:
<ol>
<li>In the package explorer, right click the build.xml -file and select Run As -&gt; External Tools Configurations</li>
<li>Click the "Environment" tab</li>
<li>Add a new variable and give it a name "FLEX_HOME", and set the value as "${eclipse_home}"</li>
<li>Click Apply and close the dialog</li>
</ol>
</li>
<li>Open up the build.xml -file, and and in the line 20 check that the FLEX_PATH points to the directory of the SDK-version you're using.</li>
<li>Bring up the ant-view by selecting Window &gt; Other views -&gt; Ant -&gt; Ant</li>
<li>Click the tiny ant icon with a plus sign, and locate the build.xml file you copied from the lib-folder.</li>
<li>Launch the ant task target: Dynamic Shared Assets: Build Asset SWC</li>
</ol>
<p>What the task does, is quite simple. It loops through files in given directory (which you can specify yourself), temporarily creates AS3 class files based on a template (default template is templates/class.template.general), compiles these classes into an SWC-file and deletes the temporary classfiles.</p>
<p>There are few lines that you may want to edit in the beginning of the build.xml -file:</p>
<pre class="xml">&nbsp;
<span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- User defined variables, modify these as needed --&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;asset.path&quot;</span>            <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;assets&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;asset.bitmap.template&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;templates/class.template.general&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;asset.bitmap.prefix&quot;</span>   <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;Ext&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;asset.bitmap.package&quot;</span>  <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;ui.assets.bitmaps&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;asset.sound.template&quot;</span>  <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;templates/class.template.general&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;asset.sound.prefix&quot;</span>    <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;Ext&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;asset.sound.package&quot;</span>   <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;ui.assets.sound&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
&nbsp;</pre>
<p>These properties define where the assets are found, which template to use for which kind of asset (so, for example, you may write your own functions for every sound asset if you want), and a prefix for the asset classes (so you may find them more easily with code hinting). Also you may set the package path according to the asset type.</p>
<p><a href="http://www.avocado.fi/blog/wp-content/uploads/2009/10/ANT_DynamicSharedAssets.zip">Download the ANT-task and related files</a>.</p>
<p><em><span style="color: #888888;">As usual, these files are provided with no guarantees, especially as this is my first experiment with Ant. You may use them in your projects whether they are commercial or experimental, but don't blame me if it all goes wrong. <img src='http://www.avocado.fi/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </span></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.avocado.fi/blog/2009/10/dynamically-compiling-assets-to-an-swc-file/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Scale9Bitmap Class</title>
		<link>http://www.avocado.fi/blog/2009/09/scale9bitmap-class/</link>
		<comments>http://www.avocado.fi/blog/2009/09/scale9bitmap-class/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 14:12:45 +0000</pubDate>
		<dc:creator>Jiinus</dc:creator>
				<category><![CDATA[AS3 Classes]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[bitmap]]></category>
		<category><![CDATA[displayobject]]></category>
		<category><![CDATA[scale9grid]]></category>

		<guid isPermaLink="false">http://www.avocado.fi/blog/?p=23</guid>
		<description><![CDATA[I often use Actionscript's native scale9grid -feature for scaling user interface elements. That's a neat concept as it allows the elements to have crisp borders and shaped corners, and still scale nicely to accommodate the needed space. The sad thing is that the scale9grid -feature only works for vector graphics and I often want to [...]]]></description>
			<content:encoded><![CDATA[<p>I often use Actionscript's native scale9grid -feature for scaling user interface elements. That's a neat concept as it allows the elements to have crisp borders and shaped corners, and still scale nicely to accommodate the needed space. The sad thing is that the scale9grid -feature only works for vector graphics and I often want to use bitmap graphics for the smaller user elements in order to minimize the amount of vector graphics that has to be rendered for screen, and because that obviously allows more flexibility for design.</p>
<p>For this reason I developed the Scale9Bitmap -class, which allows me to make, for example, a button in Photoshop, define a scale9grid for the image's bitmapData and just scale the button image so that the text or glyph fits nicely inside the button. The solution is to slice the given bitmapData into 9 pieces according to the scale9grid Rectangle, and then just to scale each one in the correct axis.</p>
<p>Here is a sample how the scale9grid affects the bitmap scaling:</p>
<p><a href="http://www.avocado.fi/blog/wp-content/uploads/2009/09/scale9bitmap_sample.png"><img class="size-full wp-image-49 alignnone" title="Example of Scale9Bitmap in action" src="http://www.avocado.fi/blog/wp-content/uploads/2009/09/scale9bitmap_sample.png" alt="Example of Scale9Bitmap in action" width="491" height="130" /></a></p>
<p>So, if this is a feature that you think you would find useful, go ahead and download <a href="http://www.avocado.fi/blog/wp-content/uploads/2009/09/Scale9Bitmap.zip">Scale9Bitmap</a>.</p>
<p>A more detailed specification of the scale9grid functionality is available at <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject.html#scale9Grid" target="_blank">Actionscript 3.0 Language Reference</a>.</p>
<p>This class is provided "as is", and still needs some development. In particular, there is one key feature still missing: the bitmap doesn't scale correctly below the given grid border size. So if, for example, you define a grid that has a 10px left column and the 20px right column, the bitmap is not scaled correctly if you set the width below 30px. Besides that, it should work nicely,  and I use it very often in my daily work.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.avocado.fi/blog/2009/09/scale9bitmap-class/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Simple software design process</title>
		<link>http://www.avocado.fi/blog/2009/09/simple-software-design-process/</link>
		<comments>http://www.avocado.fi/blog/2009/09/simple-software-design-process/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 12:23:13 +0000</pubDate>
		<dc:creator>Jiinus</dc:creator>
				<category><![CDATA[Development philosophy]]></category>

		<guid isPermaLink="false">http://www.avocado.fi/blog/?p=16</guid>
		<description><![CDATA[I was recently asked to provide a client an application that would allow users to upload their photos to a web service, and then have an application that would allow users to compose a photo album, or calendar, or other kinds of useful products from their photos. There are of course many ways to achieve [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently asked to provide a client an application that would allow users to upload their photos to a web service, and then have an application that would allow users to compose a photo album, or calendar, or other kinds of useful products from their photos. There are of course many ways to achieve this, and it has also been done many times before, so I had the advantage of not being in a pioneer position. I researched the most promising of the existing applications that were designed for this purpose, but found out that none of those were intuitive, easy, quick, nice, scalable or user-friendly. They were just solutions that provided the basic set of tools for the user to technically achieve the outcome, but no help and no guidance for the user to achieve what he or she was actually after, which is a nice looking photo-album.</p>
<p>So I decided that it's better to design and develop the software myself than to use some half-thought engineer type of solution. I started the project by considering the average user's ability to design and compose a nice looking and stylish photo-album. I found out that there are users that have little or no eye for visual design and layout, and then there are users that are proficient in making neat layouts and compositions. There are users that are motivated in using hours or even days composing the product, and there are users that want the process be very quick and effortless. And then, of course, there's everything in between. After a while of thinking I came to conclusion that targeting the application for the "average user" means that it's not probably going to be the best solution for any user.</p>
<p>At this point the thought process came down to a simple math. If I take an equation (the user interface solution), and test it with values 0% and 100% (both ends of the user proficiency/motivation and other parameters) and it works, it probably also works for every value in between, and this gave me basically just two user groups for which to target the solution. So I decided to combine both a quick, easy and effortless way of achieving the desired outcome, as well as a complicated and time-consuming way of achieving a high accuracy of the user's desires. The hasty users can answer couple of simple questions (which kind of covers, which kind of background, which kind of frames for the photos), and the system would layout the album automatically. (The task of automatically placing arbitrary amount of photos on a finite area in an aesthetically pleasing way wasn't too easy, either, but that's another story which I may post a separate post later.) After that, the more studious users can alter the way the photos are laid out, add effects, color correction, rich text and whatnot, but at this point, the hasty user already has a relatively stylish album ready.</p>
<p>So the process of making great Flash applications is not just about programming. It's also about always taking the user's abilities, desires and motivation into account when making the decisions about what the final application should be like. This is, of course, true for every other type of application development, but as Flash is relatively new platform for developing actual software, and the possibilities are truly endless, a good developer should always carry great responsibility for the user experience and not let the bad ideas get through to the final product.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.avocado.fi/blog/2009/09/simple-software-design-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello for the first time!</title>
		<link>http://www.avocado.fi/blog/2009/09/hello-for-the-first-time/</link>
		<comments>http://www.avocado.fi/blog/2009/09/hello-for-the-first-time/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 09:27:25 +0000</pubDate>
		<dc:creator>Jiinus</dc:creator>
				<category><![CDATA[About the blogger]]></category>

		<guid isPermaLink="false">http://www.avocado.fi/blog/?p=1</guid>
		<description><![CDATA[Hi, welcome to the blog of a Finnish Actionscript developer Joonas Mankki. I have been thinking about writing a blog for a long time, and recently I got involved in an inspiring large-scale project that for once has a nice schedule and doesn't take 24/7 of my time. So I thought now I might actually [...]]]></description>
			<content:encoded><![CDATA[<p>Hi, welcome to the blog of a Finnish Actionscript developer Joonas Mankki. I have been thinking about writing a blog for a long time, and recently I got involved in an inspiring large-scale project that for once has a nice schedule and doesn't take 24/7 of my time. So I thought now I might actually have some time to write about the things that I do. One day I'll probably design a layout of my own for, but for now I just picked one from the stock that looked the best to me (thanks <a href="http://www.andreiwebdesign.com/" target="_blank">Andrei</a>).</p>
<p>In this blog I'm going to share my views on the Flash-technology, my ways of designing user experiences, some useful Actionscript 3.0 classes I've developed along the way, and I also try to give you a change to learn from my mistakes so you don't have to make them yourself. <img src='http://www.avocado.fi/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>So feel free to debate on the design philosophies, use the AS3 classes I share and suggest topics that you would like to be covered here.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.avocado.fi/blog/2009/09/hello-for-the-first-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

