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

<channel>
	<title>.: Blog.FlashGen.Com :: Mike Jones - Flash Platform Consultant :. &#187; Components</title>
	<atom:link href="http://blog.flashgen.com/category/components/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.flashgen.com</link>
	<description>An infrequent look at developments in the world of the Flash Platform by Mike Jones - Flash Platform Consultant</description>
	<lastBuildDate>Tue, 23 Feb 2010 09:53:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
		<item>
		<title>Developing Flex Components Book</title>
		<link>http://blog.flashgen.com/2009/05/28/developing-flex-components-book/</link>
		<comments>http://blog.flashgen.com/2009/05/28/developing-flex-components-book/#comments</comments>
		<pubDate>Thu, 28 May 2009 12:00:18 +0000</pubDate>
		<dc:creator>Mike Jones</dc:creator>
				<category><![CDATA[Components]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[flex_builder]]></category>

	<!-- AutoMeta Start -->
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://blog.flashgen.com/?p=436</guid>
		<description><![CDATA[If you weren't already aware I've been writing a book on Flex component development which will be published by Addison-Wesley, called <strong>Developing Flex Components: <em>Using ActionScript 3.0 &#038; MXML to Extend Flex and AIR Applications</em></strong>. Originally it was targeted at Flex 3; however, as Flex 4 in the soon to be "new kid on the block" I've decided to re-write it so it now focuses on the new "Spark" components...]]></description>
			<content:encoded><![CDATA[<p><img class="floatLeft" src="http://blog.flashgen.com/images/icons/flex_icon_48.png" border="0" alt="Flex Icon" width="48" height="48" /><img class="floatRight" src="http://blog.flashgen.com/images/books/developing_flex_components_sm.png" alt="" />If you weren&#8217;t already aware I&#8217;ve been writing a book on Flex component development which will be published by Addison-Wesley, called <strong>Developing Flex Components: <em>Using ActionScript 3.0 &amp; MXML to Extend Flex and AIR Applications</em></strong>. Originally it was targeted at Flex 3; however, as Flex 4 in the soon to be &#8220;new kid on the block&#8221; I&#8217;ve decided to re-write it so it now focuses on the new &#8220;Spark&#8221; components that are present in the Flex 4 framework as opposed to the &#8220;Halo&#8221; components that Flex 3 uses.</p>
<p>That said, the original (Flex 3) chapters are now up in the <a href="http://my.safaribooksonline.com/9780321604583" target="_blank">Rough Cuts section on O&#8217;Reilly&#8217;s Safari digital book service</a>. I&#8217;m not sure what will happen to these original Flex 3 chapters once I&#8217;ve finished the book &#8211; I don&#8217;t know whether I&#8217;ll be able to release them as PDFs or not &#8211; due to contracts and the like, but if I can I&#8217;ll add them to the site.</p>
<p>It can now be ordered from <a href="http://tinyurl.com/flexcomponents" target="_blank">Amazon</a> if you want to get in before the rush :p. As I mentioned if you have a Safari account you can buy or access (depending on your account type) the rough cut chapters as they are updated.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flashgen.com/2009/05/28/developing-flex-components-book/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>I&#8217;m on Adobe TV</title>
		<link>http://blog.flashgen.com/2008/12/09/im-on-adobe-tv/</link>
		<comments>http://blog.flashgen.com/2008/12/09/im-on-adobe-tv/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 12:00:00 +0000</pubDate>
		<dc:creator>Mike Jones</dc:creator>
				<category><![CDATA[Components]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[flashgen.com]]></category>
		<category><![CDATA[mike_jones]]></category>
		<category><![CDATA[tv]]></category>
		<category><![CDATA[video]]></category>

	<!-- AutoMeta Start -->
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://blog.flashgen.com/?p=335</guid>
		<description><![CDATA[Back in August I was asked if I'd like to do a few "tips and tricks" style videos for <a href="http://tv.adobe.com/" target="_blank">Adobe TV</a>. The first of which has just been posted. This video covers off how to take a custom component and create a live preview from it, so you can then distribute it to members of your team or to the general developer populous.]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.flashgen.com/images/icons/fg_icon_48.png" alt="FlashGen.Com Icon" border="0" width="48" height="48" class="floatLeft"/>Back in August I was asked if I&#8217;d like to do a few &#8220;tips and tricks&#8221; style videos for <a href="http://tv.adobe.com/" target="_blank">Adobe TV</a>. The first of which has just been posted. This video covers off how to take a custom component and create a live preview from it, so you can then distribute it to members of your team or to the general developer populous.</p>
<p><embed class="floatCenter" src="http://tv.adobe.com/Embed.swf" quality="high" bgcolor="#000000" width="467" height="300" name="AdobeTVPlayer" play="true" loop="false" quality="high" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" flashVars="v=~b64~aHR0cDovL2Fkb2JlLmVkZ2Vib3NzLm5ldC9mbGFzaC9hZG9iZS9hZG9iZXR2Mi9hZGNfcHJlc2VudHMvNjRfYWRjXzA1My5mbHY/cnNzX2ZlZWRpZD0xNDcyJnhtbHZlcnM9Mg==&#038;w=467&#038;t=http://tv.adobe.com/#vi+f1472v1018&#038;h=300"></embed></p>
<p>If you like the video please head over to <a href="http://tv.adobe.com/#vi+f1472v1018" target="_blank">Adobe TV</a> and rate it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flashgen.com/2008/12/09/im-on-adobe-tv/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Flex 3 Wipe Effects</title>
		<link>http://blog.flashgen.com/2008/11/14/flex-3-wipe-effects/</link>
		<comments>http://blog.flashgen.com/2008/11/14/flex-3-wipe-effects/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 13:00:00 +0000</pubDate>
		<dc:creator>Mike Jones</dc:creator>
				<category><![CDATA[Components]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[effects]]></category>
		<category><![CDATA[wipe]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://blog.flashgen.com/?p=266</guid>
		<description><![CDATA[<img src="http://blog.flashgen.com/images/icons/flex_icon_48.png" alt="Flex Icon" border="0" width="48" height="48" class="floatLeft"/>In my previous post I was looking at Flex effects and how to combine and target them. However watch out if you are using multiple mask based effects, like Wipe effects).]]></description>
			<content:encoded><![CDATA[<p><img class="floatLeft" src="http://blog.flashgen.com/images/icons/flex_icon_48.png" border="0" alt="Flex Icon" width="48" height="48" />In <a href="http://blog.flashgen.com/2008/11/06/flex-transitions-and-effects-part-1/">my previous post</a> I was looking at Flex effects and how to combine and target them. However watch out if you are using multiple mask based effects, like Wipe effects. If you are trying to get multiple wipe effects to run in parallel on the same target you aren&#8217;t going to get what you expect.</p>
<p>If you think about it, it is obvious why; the documentation and functionality regarding masks in general is quite explicit. You can only have one mask applied and active on a specific target any any one time. If you were to apply another mask the new mask is applied and the old one is deactivated. So with that in mind I started to play around with the masks and various resize and move effects to try and achieve what I wanted to do.</p>
<p><span id="more-266"></span></p>
<p>So while sitting on the train heading home one evening I came up with the following effects below. Obviously these are a variation on a theme, but they were what I was after. If you think they would be useful in a Flex project you are doing feel free to download them from my <a href="http://developer.flashgen.com" target="_blank">dev site</a></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="218" height="338" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="BGCOLOR" /><param name="src" value="http://blog.flashgen.com/swfs/wipeeffects.swf" /><embed type="application/x-shockwave-flash" width="218" height="338" src="http://blog.flashgen.com/swfs/wipeeffects.swf"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flashgen.com/2008/11/14/flex-3-wipe-effects/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Flash on the Beach 08 Session Notes</title>
		<link>http://blog.flashgen.com/2008/10/15/flash-on-the-beach-08-session-notes/</link>
		<comments>http://blog.flashgen.com/2008/10/15/flash-on-the-beach-08-session-notes/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 11:00:00 +0000</pubDate>
		<dc:creator>Mike Jones</dc:creator>
				<category><![CDATA[AIR (Apollo)]]></category>
		<category><![CDATA[Components]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[08]]></category>
		<category><![CDATA[flashgen]]></category>
		<category><![CDATA[flash_on_the_beach]]></category>
		<category><![CDATA[fotb]]></category>
		<category><![CDATA[session]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://blog.flashgen.com/?p=263</guid>
		<description><![CDATA[Another year another fantastic conference in Brighton &#8211; I&#8217;m obviously speaking about Flash on the Beach. What a fantastic conference, not only was it bigger and better but John announced that there would be a Flash on the Beach Miami in 2009. I&#8217;m pretty stoked by this as John had sworn me to secrecy over [...]]]></description>
			<content:encoded><![CDATA[<p><img class="floatLeft" src="http://blog.flashgen.com/images/conferences/fotb/fotb08_137_x_60.gif" alt="" />Another year another fantastic conference in Brighton &#8211; I&#8217;m obviously speaking about <a href="http://www.flashonthebeach.com" target="_blank">Flash on the Beach</a>. What a fantastic conference, not only was it bigger and better but John announced that there would be a Flash on the Beach Miami in 2009. I&#8217;m pretty stoked by this as John had sworn me to secrecy over this new conference date. Plus he&#8217;d asked me if I&#8217;d like to present there&#8230;Hell yeah!</p>
<p>That said this year at Flash on the Beach I did a session entitled &#8220;Things To Make And Do&#8221;. It was a talk about the Flex framework from the perspective of component development and how an understanding of how the component framework in Flex works will provide you with a good grasp of how the overall Flex framework flows.</p>
<p><span id="more-263"></span></p>
<p>So without further ado, here are the links to download my session notes and the example code used in the presentation. I&#8217;ve added some detail to the slide notes, (you&#8217;ll need to download the version with the notes &#8211; not the one below). That said I may record the session again via Screenflow so it is useful for everyone. I&#8217;ve also shared it via <a href="http://www.acrobat.com" target="_blank">Adobe Share</a> and embedded the slide deck below</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="541" height="500" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="high" /><param name="wmode" value="transparent" /><param name="allowFullScreen" value="true" /><param name="flashvars" value="ext=pdf&amp;docId=9a1ad33f-e315-482e-aee1-5aaac7b383ae&amp;lang=en_US" /><param name="src" value="https://share.acrobat.com/adc/flex/mpt.swf" /><embed type="application/x-shockwave-flash" width="541" height="500" src="https://share.acrobat.com/adc/flex/mpt.swf" flashvars="ext=pdf&amp;docId=9a1ad33f-e315-482e-aee1-5aaac7b383ae&amp;lang=en_US" allowfullscreen="true" wmode="transparent" quality="high"></embed></object></p>
<p>Download Files</p>
<ul>
<li><a href="https://share.acrobat.com/adc/document.do?docid=9a1ad33f-e315-482e-aee1-5aaac7b383ae" target="_blank">Slide Deck (No notes)</a></li>
<li><a href="https://share.acrobat.com/adc/document.do?docid=5f0ed5a3-1aaf-46f3-927a-acda1605f704" target="_blank">Slide Deck (Notes included)</a></li>
<li><a href="http://blog.flashgen.com/files/fotb08/FotB08_ExampleFiles.zip">Session Example Skinning Files</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.flashgen.com/2008/10/15/flash-on-the-beach-08-session-notes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>FLVPLayback component for Flex</title>
		<link>http://blog.flashgen.com/2008/02/29/flvplayback-component-for-flex/</link>
		<comments>http://blog.flashgen.com/2008/02/29/flvplayback-component-for-flex/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 11:09:20 +0000</pubDate>
		<dc:creator>Mike Jones</dc:creator>
				<category><![CDATA[Components]]></category>
		<category><![CDATA[Flex]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://blog.flashgen.com/2008/02/29/flvplayback-component-for-flex/</guid>
		<description><![CDATA[
As most of my close friends know, I have a bit of a thing for components. So it will come as no surprise that I have a few new ones to release. The first of these is a video playback component that I have shamelessly called FLVPlayback after the similar component of the same name [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.flashgen.com/images/icons/flex_icon_48.png" alt="Flex Icon" border="0" width="48" height="48" class="floatLeft"/>
<p>As most of my close friends know, I have a bit of a thing for components. So it will come as no surprise that I have a few new ones to release. The first of these is a video playback component that I have shamelessly called FLVPlayback after the similar component of the same name in Flash.</p>
<p>It is currently quite simple in its operation &#8211; it only has a play / pause and mute button, plus a set of progress bars for both playback and loading and a simple display showing the time elapsed (you can see it all in the image below, Tekzilla video shown to give a bit of context).</p>
<p><img src="http://trac.flashgen.com/chrome/site/images/flvplayback_01.png" class="floatRight"/></p>
<p>The control bar automatically fades out once the user rolls off of it, however, if you wanted to have it persist there is a flag to make it operate in that manner.</p>
<p>The component supports skinning and styling (there is a Flash based skin template available for download as well).</p>
<p>The original premise for this control came about from a conversation with <a href="http://www.ashorten.com" target="_blank">Andrew Shorten</a> and the Adobe UK marketing people in regards to providing a simple set of classes and examples that would allow people who were developers or designers not already using Flex to get to grips with Flex a little faster than just downloading the trial and figuring it out from there.</p>
<p> Plus as there seemed to be a bit of a gap in the Flex component set for a video component that actually had controls (as opposed to the VideoDisplay component that is just a box to load video into). So this component was created and formed part of the kit that was distributed on Monday 25th to conicide with the launch of Flex 3 and AIR.</p>
<p>This is just the initial release, I&#8217;m currently working on adding in more functionality and additional controls, so if you want to try it out, post a feature request or a bug. Or you would like to download the source to have a look, you can do it all here: <a href="http://developer.flashgen.com/wiki/development/flex/components/flvplayback" target="_blank">FlashGen.Com Dev Server</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flashgen.com/2008/02/29/flvplayback-component-for-flex/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Tonight LFPug &#8211; Flex development in 60 minutes.</title>
		<link>http://blog.flashgen.com/2007/08/30/tonight-lfpug-flex-development-in-60-minutes/</link>
		<comments>http://blog.flashgen.com/2007/08/30/tonight-lfpug-flex-development-in-60-minutes/#comments</comments>
		<pubDate>Thu, 30 Aug 2007 08:46:58 +0000</pubDate>
		<dc:creator>Mike Jones</dc:creator>
				<category><![CDATA[Components]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flex]]></category>

	<!-- AutoMeta Start -->
	<category>minutes</category>
	<category>tonight</category>
	<category>laptop</category>
	<category>participatory</category>
	<category>prep</category>
	<category>goget</category>
	<category>participation</category>
	<category>mandatory</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://blog.flashgen.com/2007/08/30/tonight-lfpug-flex-development-in-60-minutes/</guid>
		<description><![CDATA[Has he gone mad I hear you say. He did say 60 minutes. Yes 60 minutes to develop an application. This is the talk / participatory presentation I will be giving at the London Flash Platform user group tonight.
Obviously in the true style of Blue Peter there will be a bit of prep and code [...]]]></description>
			<content:encoded><![CDATA[<p>Has he gone mad I hear you say. He did say 60 minutes. Yes 60 minutes to develop an application. This is the talk / participatory presentation I will be giving at the <a href="http://www.lfpug.com" target="_blank">London Flash Platform user group</a> tonight.</p>
<p>Obviously in the true style of Blue Peter there will be a bit of prep and code for the talk is available for download before hand (see links at the bottom of this post). </p>
<p>However the point of the talk is not to stand and lecture on how you can build better faster applications in Flex 2, nor is it to watch me type for an hour! It&#8217;s to allow those who like the idea of Flex get involved and have a go as well. So if you have a laptop, a copy of Flex Builder 2 (or the beta of Flex Builder 3) and want to join in this is for you. If you don&#8217;t then don&#8217;t worry, participation is not mandatory.</p>
<p>What are we going to make&#8230; Well let&#8217;s keep that a surprise.<br />
<span id="more-177"></span><br />
<a href="http://blog.flashgen.com/files/LFPug-60minapp-FB2.zip">Project files for Flex Builder 2</a><br />
<a href="http://blog.flashgen.com/files/LFPug-60minapp-FB3.zip">Project files for Flex Builder 3</a></p>
<p>Once you have downloaded the zip just import it into Flex Builder using the following steps:</p>
<ol>
<li>Right click in the Navigator pane (top left hand side)</li>
<li>Select Import (or File > Import)</li>
<li>Choose General > Existing Projects into Workspace from the dialog that opens</li>
<li>Choose the &#8220;Select archive file&#8221; option and browse to the zip file</li>
<li>Follow the prompts</li>
<li>That&#8217;s it</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.flashgen.com/2007/08/30/tonight-lfpug-flex-development-in-60-minutes/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Flex 2 ItemRenders</title>
		<link>http://blog.flashgen.com/2007/06/06/flex-2-itemrenders-pt1/</link>
		<comments>http://blog.flashgen.com/2007/06/06/flex-2-itemrenders-pt1/#comments</comments>
		<pubDate>Wed, 06 Jun 2007 15:26:25 +0000</pubDate>
		<dc:creator>Mike Jones</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Components]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flex]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://blog.flashgen.com/2007/05/16/flex-2-itemrenders-pt1/</guid>
		<description><![CDATA[I&#8217;ve been playing around with the Item Renderers in Flex 2 recently (more than usual as it goes). So I thought I&#8217;d put my findings and &#8220;insights&#8221; down in a series of articles. 
This isn&#8217;t a definitive guide, but might prove useful for some :D
The first part can be found here.
]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.flashgen.com/images/flex/flexicon_moxie.jpg" alt="Flex 3 (Moxie)" class="floatLeft"/>I&#8217;ve been playing around with the Item Renderers in Flex 2 recently (more than usual as it goes). So I thought I&#8217;d put my findings and &#8220;insights&#8221; down in a series of articles. </p>
<p>This isn&#8217;t a definitive guide, but might prove useful for some :D</p>
<p>The first part can be found <a href="http://blog.flashgen.com/components/implementation/flex/itemrendering-pt1/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flashgen.com/2007/06/06/flex-2-itemrenders-pt1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>View Flex &lt;mx:&#8230;/&gt; tag classes</title>
		<link>http://blog.flashgen.com/2007/03/09/view-flex-mx-tag-associated-classes/</link>
		<comments>http://blog.flashgen.com/2007/03/09/view-flex-mx-tag-associated-classes/#comments</comments>
		<pubDate>Fri, 09 Mar 2007 11:35:33 +0000</pubDate>
		<dc:creator>Mike Jones</dc:creator>
				<category><![CDATA[Components]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flex]]></category>

	<!-- AutoMeta Start -->
	<category>refering</category>
	<category>insightful</category>
	<category>conversation</category>
	<category>addicts</category>
	<category>demonstrated</category>
	<category>colleague</category>
	<category>prove</category>
	<category>common</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://blog.flashgen.com/2007/03/09/view-flex-mx-tag-associated-classes/</guid>
		<description><![CDATA[This is probably common knowledge for most but I&#8217;m posting it as it just came up in conversation (as I demonstrated it to a colleague). Also for the budding component developers amongst us this be of use and even prove insightful. 
So, given the title this obviously has something to do with MXML tags. Which [...]]]></description>
			<content:encoded><![CDATA[<p>This is probably common knowledge for most but I&#8217;m posting it as it just came up in conversation (as I demonstrated it to a colleague). Also for the budding component developers amongst us this be of use and even prove insightful. </p>
<p>So, given the title this obviously has something to do with MXML tags. Which it does. </p>
<p><span id="more-140"></span>So what about them?<br />
Well I&#8217;m refering to is the functionality that allows you to load and review the actual classes that are defined by the <strong><mx:.../></strong> tags in Flex Builder 2.0.</p>
<p>To do this open up Flex Builder and create a new MXML file. The default code that is generated will do so you should see the following in your &#8217;source&#8217; view.</p>
<p><img src="http://blog.flashgen.com/images/flex/flex_class_access.jpg" alt="Flex default 'Application' code"/></p>
<p>[Thanks for the update Rob]<del datetime="2007-03-09T1300:51-00:00"><strike>Now with your mouse pointer click at the beginning of the <strong>&lt;mx:Application&#8230;</strong> this should highlight that entire row, as you can see in the image mine highlights in blue.</strike></del> Now hold down CTRL on Windows or CMD (The Apple key :p) on OS X and hover your mouse over the word Application. What should happen is that it will underline and allow you to click it. </p>
<p>When you click this new link the Actionscript 3.0 class for that tag will open in the IDE for you to look through.  Apologies if I&#8217;m posting &#8216;money for old rope&#8217; style information but it is so easily missed if you haven&#8217;t heard or seen it before&#8230;</p>
<p>For those that haven&#8217;t I hope it proves useful :)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flashgen.com/2007/03/09/view-flex-mx-tag-associated-classes/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Actionscript 3.0 Component Development</title>
		<link>http://blog.flashgen.com/2006/11/09/actionscript-30-component-development/</link>
		<comments>http://blog.flashgen.com/2006/11/09/actionscript-30-component-development/#comments</comments>
		<pubDate>Thu, 09 Nov 2006 09:02:59 +0000</pubDate>
		<dc:creator>Mike Jones</dc:creator>
				<category><![CDATA[Components]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flex]]></category>

	<!-- AutoMeta Start -->
	<category>fgcombobox</category>
	<category>combobox</category>
	<category>dataprovider</category>
	<category>_data</category>
	<category>applydata</category>
	<category>controls</category>
	<category>array</category>
	<category>difference</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://blog.flashgen.com/2006/11/09/actionscript-30-component-development/</guid>
		<description><![CDATA[Over the past week or so I&#8217;ve been posting snippets on creating MXML based components, and will continue to do so. That said I thought I&#8217;d post some articles on creating components in Actionscript 3.0 so you can see where the crossover exists and provide information that will, hopefully, provide a rounded view on which [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past week or so I&#8217;ve been posting snippets on creating MXML based components, and will continue to do so. That said I thought I&#8217;d post some articles on creating components in Actionscript 3.0 so you can see where the crossover exists and provide information that will, hopefully, provide a rounded view on which method of development suits each individual.</p>
<p>As with my first post on component development with MXML I thought I&#8217;d take the same code but re-engineer it in to AS 3.0 code so we can see the difference.</p>
<p><span id="more-119"></span><br />
So first of all let&#8217;s briefly review the MXML code of our extended ComboBox:</p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:ComboBox</span> xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span><span style="color: #7400FF;">&gt;</span></span>
	<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:dataProvider</span><span style="color: #7400FF;">&gt;</span></span>
		<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:String</span><span style="color: #7400FF;">&gt;</span></span>Miss<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:String</span><span style="color: #7400FF;">&gt;</span></span>
		<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:String</span><span style="color: #7400FF;">&gt;</span></span>Mrs<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:String</span><span style="color: #7400FF;">&gt;</span></span>
		<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:String</span><span style="color: #7400FF;">&gt;</span></span>Mr<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:String</span><span style="color: #7400FF;">&gt;</span></span>
		<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:String</span><span style="color: #7400FF;">&gt;</span></span>Dr<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:String</span><span style="color: #7400FF;">&gt;</span></span>
	<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:dataProvider</span><span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:ComboBox</span><span style="color: #7400FF;">&gt;</span></span></pre></div></div>

<p>As you can see it ha all the elements you&#8217;d expect but how would we reproduce it in AS 3.0? Well first of all it would make sense to include the package path as this will have more relevance as we move on. So for the component above it is called <strong>FGComboBox.mxml</strong> and it is located in <strong>com.flashgen.components.flex.controls. </strong>When we just create the initial Actionscript 3.0 class you&#8217;ll see why this matter.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">// Remember the package name is now external to the class identifier.</span>
package com.<span style="color: #006600;">flashgen</span>.<span style="color: #006600;">components</span>.<span style="color: #006600;">flash</span>.<span style="color: #006600;">controls</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #808080; font-style: italic;">// Import our classes we need to create our component</span>
	<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">controls</span>.<span style="color: #006600;">ComboBox</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">// Declare our class and provide the inheritance and interfaces </span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> FGComboBox <span style="color: #0066CC;">extends</span> ComboBox
	<span style="color: #66cc66;">&#123;</span>	
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _data	:<span style="color: #0066CC;">Array</span> = <span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;Miss&quot;</span>, <span style="color: #ff0000;">&quot;Mrs&quot;</span>, <span style="color: #ff0000;">&quot;Mr&quot;</span>, <span style="color: #ff0000;">&quot;Dr&quot;</span><span style="color: #66cc66;">&#93;</span>;	
&nbsp;
		<span style="color: #808080; font-style: italic;">// Define the constructor</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> FGComboBox<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">// Call our parent</span>
			<span style="color: #0066CC;">super</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			applyData<span style="color: #66cc66;">&#40;</span>_data<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		protected <span style="color: #000000; font-weight: bold;">function</span> applyData<span style="color: #66cc66;">&#40;</span>elements:<span style="color: #0066CC;">Array</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">// Set the dataProvider for the component</span>
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">dataProvider</span> = elements;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>If you want to try it out here is the MXML application file:</p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Application</span> xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> layout=<span style="color: #ff0000;">&quot;absolute&quot;</span> xmlns:fgx=<span style="color: #ff0000;">&quot;com.flashgen.components.flex.controls.*&quot;</span> xmlns:fgc=<span style="color: #ff0000;">&quot;com.flashgen.components.flash.controls.*&quot;</span> viewSourceURL=<span style="color: #ff0000;">&quot;srcview/index.html&quot;</span><span style="color: #7400FF;">&gt;</span></span>
	<span style="color: #000000;"><span style="color: #7400FF;">&lt;fgx:FGComboBox</span> id=<span style="color: #ff0000;">&quot;fgxCombo&quot;</span> x=<span style="color: #ff0000;">&quot;0&quot;</span> y=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
	<span style="color: #000000;"><span style="color: #7400FF;">&lt;fgc:FGComboBox</span> id=<span style="color: #ff0000;">&quot;fgcCombo&quot;</span> x=<span style="color: #ff0000;">&quot;100&quot;</span> y=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:Application</span><span style="color: #7400FF;">&gt;</span></span></pre></div></div>

<p><object class="floatLeft" type="application/x-shockwave-flash" data="http://blog.flashgen.com/swfs/as3_mxml_simple_example.swf" width="148" height="120"><param name="movie" value="http://blog.flashgen.com/swfs/as3_mxml_simple_example.swf" /><param name="BGCOLOR" value="" /><a title="You must install the Flash Plugin for your Browser in order to view this movie"  href="http://www.macromedia.com/shockwave/download/alternates/"><img src=http://blog.flashgen.com/wp-content/plugins/flqt/needplugin.gif height="31"  alt="placeholder for flash movie" /></a></object>Now this is purely an example piece of code so it is unlikely you would really implement a component in this manner. </p>
<p>It will run and it has the same default values as the MXML version above it. The interesting thing to note is that once compiled you cannot tell the difference between the two versions. I know it is a very obvious thing to say but I thought I would be explicit.</p>
<p>Hopefully this has given a basis of comparison between the MXML and Actionscript 3.0 component development &#8211; albeit on the simple side. </p>
<p><strong>Blatant Plug</strong><br />
<a href="http://www.flashonthebeach.com" target="_blank"><img src="http://blog.flashgen.com/images/fotb/small155_47.gif" alt="Flash on the Beach" title="Flash on the Beach" class="floatRight" /></a>Catch my talk on <a href="http://www.flashonthebeach.com" target="_blank">Flex 2 and Actionscript 3.0 component development at Flash on the Beach</a><br />
December 4th-6th 2006, Brighton, UK</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flashgen.com/2006/11/09/actionscript-30-component-development/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Base Component Methods: Actionscript 2.0 to 3.0</title>
		<link>http://blog.flashgen.com/2006/11/08/base-component-methods-actionscript-20-to-30/</link>
		<comments>http://blog.flashgen.com/2006/11/08/base-component-methods-actionscript-20-to-30/#comments</comments>
		<pubDate>Wed, 08 Nov 2006 14:44:39 +0000</pubDate>
		<dc:creator>Mike Jones</dc:creator>
				<category><![CDATA[Components]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flex]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://blog.flashgen.com/2006/11/08/base-component-methods-actionscript-20-to-30/</guid>
		<description><![CDATA[For those of you who are comfortable with Actionscript 2.0 component development based on the v2 component framework, I thought it would be worthwhile in posting about the similarities and the differences between the core methods that can be implemented when creating an Actionscript 3.0 component. For clarity I&#8217;ll deal with UIComponent as most of [...]]]></description>
			<content:encoded><![CDATA[<p>For those of you who are comfortable with Actionscript 2.0 component development based on the v2 component framework, I thought it would be worthwhile in posting about the similarities and the differences between the core methods that can be implemented when creating an Actionscript 3.0 component. For clarity I&#8217;ll deal with UIComponent as most of the core methods are in some way implemented or derived from this class.</p>
<p><span id="more-118"></span></p>
<p>To begin with let&#8217;s recap on the core methods for UIComponent in the Actionscript 2.0 v2 framework.</p>
<p><strong>Actionscript 2.0 Specific</strong></p>
<ul>
<li> <strong>init()</strong> &#8211; Here we create the initial references to our component and make sure that our parent class has instantiated by calling super(); (If you don&#8217;t call super() you cannot take advantage of enabling / diabling your component as a Watch is applied for just this purpose in the UIComponent init() method.</li>
<li> <strong>createChildren()</strong> &#8211; Pretty self explanatory really. Watch out for parameter setting in the optional initObj of a nested component.</li>
<li> <strong>size()</strong> &#8211; Again it pretty much does what it says on the tin. This is the first time a component knows it&#8217;s actual size.</li>
<li> <strong>draw()</strong> &#8211; Our last method, draw() does just that, it draws the visual elements on the screen.</li>
</ul>
<p>Compare this to the Actionscript 3.0 framework. First of all not all of the methods from the v2 framework are carried over and those that are have been re-engineered. In my opinion this is a good thing as most were a little convoluted as to their actual purpose and what order they were actually processed in (having access to the source code wasn&#8217;t that beneficial and only served as a solution due to the shockingly poor documentation for component development.</p>
<p>With AS3.0 we now have an actual use for the constructor and we lose <strong>init()</strong>. It&#8217;s a like for like trade. <strong>createChildren() </strong>stays, but <strong>size()</strong> and <strong>draw()</strong> get replaced with <strong>measure()</strong> and <strong>updateDisplayList()</strong>. We also get a couple of extra methods to make our life easier &#8211; <strong>layoutChrome()</strong> and <strong>commitChanges()</strong>. So what do these do differently to the old methods we had in the v2 framework?</p>
<p><strong>Actionscript 3.0 Specific</strong></p>
<ul>
<li><strong>createChildren()</strong> &#8211; This method still does pretty much the same job as in the v2 framework.</li>
<li><strong>measure()</strong> &#8211; Again this is similar in nature to size(). Providing the default width and height of the components. It also provides the default minimum size this particular component can be. So no more design view flaws where a user can make the component smaller than is functionally usable.</li>
<li><strong>updateDisplayList()</strong> &#8211; Like measure(), this is pretty similar to the old draw() method. However it does have the ability to do sizing of any child elements as well as the positioning within the component operational area. It also deals with the application of skins and graphics as required by the component. This is not the same as <strong>layoutChrome()</strong> though.</li>
<li><strong>layoutChrome()</strong> &#8211; This method deals with the application of any border area of a component. You will generally only use this when subclassing from Container components / classes or creating a custom component that is a type of container or holder.</li>
<li><strong>commitChanges()</strong> &#8211; This method deals with the application of property changes within the component itself &#8211; either by internal or external intervention. You can either get all changes to invoke at the same time or define a specific order.</li>
</ul>
<p>So we have the initial methods used to create our core component framework, but what about the old <strong>redraw(),</strong> <strong>invalidate()</strong> and <strong>setSize()</strong> from v2? As most are aware these were part of the public API to allow for the re-rendering / resizing of the component and it&#8217;s visual elements. Iin the case of <strong>invalidate() </strong>that would be the next available frame interval or if <strong>redraw(true)</strong> the current frame. <strong>setSize()</strong> deals with manipulating the size method by providing an interface to set the components new width and height values then calling <strong>size()</strong>.</p>
<p>In Actionscript 3.0 we lose all of these and in their place we have the following:</p>
<ul>
<li><strong>invalidateDisplayList()</strong> &#8211; This marks the component so that it&#8217;s updateDisplayList() and layoutChrome() methods are called on the next screen update.</li>
<li><strong>invalidateProperties()</strong> &#8211; If our component has received a data change or it&#8217;s properties have been updated via a specific mechanism we can invoke this method to make sure that commitChanges() gets called during the next screen update.</li>
<li><strong>invalidateSize()</strong> &#8211; This one is obvious compared to the other two, it marks the component so that it&#8217;s measure() method is called in the next screen update.</li>
</ul>
<p>Hopefully this will make everyones life a lot easier when developing components for both Flex 2 and eventually Flash 9. If you want to find out more then feel free to pop back here from time to time. Alternatively see the blatant plug below :p</p>
<p><a href="http://www.flashonthebeach.com" target="_blank"><img src="http://blog.flashgen.com/images/fotb/small155_47.gif" alt="Flash on the Beach" title="Flash on the Beach" class="floatRight" /></a>Catch my talk on <a href="http://www.flashonthebeach.com" target="_blank">Flex 2 and Actionscript 3.0 component development at Flash on the Beach</a><br />
December 4th-6th 2006, Brighton, UK</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flashgen.com/2006/11/08/base-component-methods-actionscript-20-to-30/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
	</channel>
</rss>
