<?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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>while(thoughts){ &#34;i am writing&#34;}</title>
	<atom:link href="http://flexguruin.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://flexguruin.wordpress.com</link>
	<description>Just about anything... and everything :)</description>
	<lastBuildDate>Wed, 05 Oct 2011 22:43:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='flexguruin.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>while(thoughts){ &#34;i am writing&#34;}</title>
		<link>http://flexguruin.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://flexguruin.wordpress.com/osd.xml" title="while(thoughts){ &#34;i am writing&#34;}" />
	<atom:link rel='hub' href='http://flexguruin.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Android Video Tutorials (links)</title>
		<link>http://flexguruin.wordpress.com/2011/03/19/android-video-tutorials-links/</link>
		<comments>http://flexguruin.wordpress.com/2011/03/19/android-video-tutorials-links/#comments</comments>
		<pubDate>Fri, 18 Mar 2011 22:40:11 +0000</pubDate>
		<dc:creator>MD</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android architecture]]></category>
		<category><![CDATA[android development]]></category>
		<category><![CDATA[android environment]]></category>
		<category><![CDATA[android library]]></category>
		<category><![CDATA[android library project]]></category>
		<category><![CDATA[android platform]]></category>
		<category><![CDATA[android tutorial]]></category>
		<category><![CDATA[Android using Eclipse]]></category>
		<category><![CDATA[android video tutorial]]></category>
		<category><![CDATA[google android]]></category>
		<category><![CDATA[mobile app]]></category>
		<category><![CDATA[mobile apps development]]></category>
		<category><![CDATA[mobile development]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://flexguruin.wordpress.com/?p=179</guid>
		<description><![CDATA[As I spent a lot of time searching for android video tutorials, here are the links to the best I could find out. All these are free and good for learning from scratch (for someone with programming background) Free Android Video Tutorials: Android Bootcamp Screencast Series: http://marakana.com/techtv/android_bootcamp_screencast_series.html Oreilly &#8211; Developing Android Applications: http://training.oreilly.com/androidapps/ A very [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=179&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As I spent a lot of time searching for android video tutorials, here are the links to the best I could find out. All these are free and good for learning from scratch (for someone with programming background)</p>
<p>Free Android Video Tutorials:</p>
<p>Android Bootcamp Screencast Series:</p>
<p>http://marakana.com/techtv/android_bootcamp_screencast_series.html</p>
<p>Oreilly &#8211; Developing Android Applications:</p>
<p>http://training.oreilly.com/androidapps/</p>
<p>A very good series of free video tutorials:</p>
<p>http://xtensivearts.blip.tv/posts?view=archive&#038;nsfw=dc</p>
<p>Creating Android Themes(Video Tutorial Series):</p>
<p>http://forum.xda-developers.com/showthread.php?t=593932</p>
<p>I appreciate if anyone has more links, please post it in comments and I &#8216;ll try to add them to this link series with due credits.</p>
<p>Enjoy Learning Android..</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flexguruin.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flexguruin.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flexguruin.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flexguruin.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flexguruin.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flexguruin.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flexguruin.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flexguruin.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flexguruin.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flexguruin.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flexguruin.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flexguruin.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flexguruin.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flexguruin.wordpress.com/179/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=179&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flexguruin.wordpress.com/2011/03/19/android-video-tutorials-links/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a6b5790292e0c442500ad92590f6163?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdhanda</media:title>
		</media:content>
	</item>
		<item>
		<title>Parsley: Flex 4 Modular Application</title>
		<link>http://flexguruin.wordpress.com/2011/02/06/parsley-flex-4-modular-application/</link>
		<comments>http://flexguruin.wordpress.com/2011/02/06/parsley-flex-4-modular-application/#comments</comments>
		<pubDate>Sun, 06 Feb 2011 06:31:58 +0000</pubDate>
		<dc:creator>MD</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Parsley]]></category>
		<category><![CDATA[Flex Frameworks]]></category>
		<category><![CDATA[flex4]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[spicelib]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Spark]]></category>
		<category><![CDATA[parsley modular application]]></category>
		<category><![CDATA[sample application]]></category>

		<guid isPermaLink="false">http://flexguruin.wordpress.com/?p=174</guid>
		<description><![CDATA[Its quite some time that I had posted anything on my blog. You know personal life keeps you busy all the time. But never mind, I never stopped experimenting around with Flex OR in that case, anything surrounding flex. And these days, more I hear about Flex, more I felt the presence of Parsley framework [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=174&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Its quite some time that I had posted anything on my blog. You know personal life keeps you busy all the time. But never mind, I never stopped experimenting around with Flex OR in that case, anything surrounding flex. And these days, more I hear about Flex, more I felt the presence of Parsley framework in the talks. So lets begin..</p>
<p>As most of you already knowing, Parsley is another framework for Flex/Flash application based on DI and IOC patterns. A couple of other frameworks that follow the same approach are Spring Actionscript, Robotlegs and may be a few more.</p>
<p>Here I am not discussing the code but just posting the source of my modular application that I generally use to play around. I had used Flex 4 with Parsley 2.4.M1 library.</p>
<p>Here is the <a title="sample modular application code" href="http://dl.dropbox.com/u/17757531/GenericParsleyApp.zip">sample modular application code</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flexguruin.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flexguruin.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flexguruin.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flexguruin.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flexguruin.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flexguruin.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flexguruin.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flexguruin.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flexguruin.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flexguruin.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flexguruin.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flexguruin.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flexguruin.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flexguruin.wordpress.com/174/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=174&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flexguruin.wordpress.com/2011/02/06/parsley-flex-4-modular-application/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a6b5790292e0c442500ad92590f6163?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdhanda</media:title>
		</media:content>
	</item>
		<item>
		<title>PureMVC Fabrication: Flex 4 Modular application</title>
		<link>http://flexguruin.wordpress.com/2011/01/01/puremvc-fabrication-flex-4-modular-application/</link>
		<comments>http://flexguruin.wordpress.com/2011/01/01/puremvc-fabrication-flex-4-modular-application/#comments</comments>
		<pubDate>Sat, 01 Jan 2011 15:08:44 +0000</pubDate>
		<dc:creator>MD</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Fabrication (PureMVC)]]></category>
		<category><![CDATA[Flex Frameworks]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[flex4]]></category>
		<category><![CDATA[puremvc]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Spark]]></category>
		<category><![CDATA[spark component life cycle]]></category>
		<category><![CDATA[modular application]]></category>

		<guid isPermaLink="false">http://flexguruin.wordpress.com/?p=170</guid>
		<description><![CDATA[I couldn&#8217;t stop myself coming back to this great utility Fabrication(PureMVC) again and again. Recently I was playing with Robotlegs. It&#8217;s one of the very good Flex frameworks on the shelves to work with. But, I found myself more inclined towards Fabrication after working out with a sample modular application. I had created a sample [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=170&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I couldn&#8217;t stop myself coming back to this great utility Fabrication(PureMVC) again and again. Recently I was playing with Robotlegs. It&#8217;s one of the very good Flex frameworks on the shelves to work with. But, I found myself more inclined towards Fabrication after working out with a sample modular application.</p>
<p>I had created a sample modular application using Fabrication. For this I have used the sample application idea and code structure from Robotlegs sample modular application.</p>
<p>Here is the <a href="http://dl.dropbox.com/u/17757531/GenericFabApp.zip" target="_blank">sample application code</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flexguruin.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flexguruin.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flexguruin.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flexguruin.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flexguruin.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flexguruin.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flexguruin.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flexguruin.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flexguruin.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flexguruin.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flexguruin.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flexguruin.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flexguruin.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flexguruin.wordpress.com/170/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=170&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flexguruin.wordpress.com/2011/01/01/puremvc-fabrication-flex-4-modular-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a6b5790292e0c442500ad92590f6163?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdhanda</media:title>
		</media:content>
	</item>
		<item>
		<title>Flex 4 : Vector Graphics in Spark</title>
		<link>http://flexguruin.wordpress.com/2010/12/24/flex-4-vector-graphics-in-spark/</link>
		<comments>http://flexguruin.wordpress.com/2010/12/24/flex-4-vector-graphics-in-spark/#comments</comments>
		<pubDate>Fri, 24 Dec 2010 08:17:47 +0000</pubDate>
		<dc:creator>MD</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Frameworks]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Spark]]></category>
		<category><![CDATA[Vector graphics]]></category>
		<category><![CDATA[Rect]]></category>
		<category><![CDATA[Ellipse]]></category>
		<category><![CDATA[Path]]></category>
		<category><![CDATA[Skins]]></category>
		<category><![CDATA[spark primitives]]></category>

		<guid isPermaLink="false">http://flexguruin.wordpress.com/?p=160</guid>
		<description><![CDATA[In Spark, we have support for vector graphics that can be used in our applications. In contrast with Bitmap graphics where you show one bit at a time, Vector graphics are calculated mathematically. Hence, as you shrink or grow your view, the graphics will give you a smooth experience. Vector graphics are kept in the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=160&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In Spark, we have support for vector graphics that can be used in our applications. In contrast with Bitmap graphics where you show one bit at a time, Vector graphics are calculated mathematically. Hence, as you shrink or grow your view, the graphics will give you a smooth experience.<br />
Vector graphics are kept in the spark.primitives package.<br />
Note: Vector graphics can only be added to spark containers. It does not support old mx containers from Flex 3.</p>
<p>There are 3 primary classes that you can use to create your graphics. These are:<br />
Rect<br />
Ellipse<br />
Path</p>
<p>We will discuss about them in the coming posts.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flexguruin.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flexguruin.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flexguruin.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flexguruin.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flexguruin.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flexguruin.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flexguruin.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flexguruin.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flexguruin.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flexguruin.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flexguruin.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flexguruin.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flexguruin.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flexguruin.wordpress.com/160/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=160&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flexguruin.wordpress.com/2010/12/24/flex-4-vector-graphics-in-spark/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a6b5790292e0c442500ad92590f6163?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdhanda</media:title>
		</media:content>
	</item>
		<item>
		<title>Flex 4: Layouts supported in Spark</title>
		<link>http://flexguruin.wordpress.com/2010/12/21/flex-4-layouts-supported-in-spark/</link>
		<comments>http://flexguruin.wordpress.com/2010/12/21/flex-4-layouts-supported-in-spark/#comments</comments>
		<pubDate>Tue, 21 Dec 2010 12:06:41 +0000</pubDate>
		<dc:creator>MD</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Frameworks]]></category>
		<category><![CDATA[basic layout]]></category>
		<category><![CDATA[basiclayout]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[flex4]]></category>
		<category><![CDATA[horizontal layout]]></category>
		<category><![CDATA[horizontallayout]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[Spark]]></category>
		<category><![CDATA[tile layout]]></category>
		<category><![CDATA[tilelayout]]></category>
		<category><![CDATA[vertical layout]]></category>
		<category><![CDATA[verticallayout]]></category>

		<guid isPermaLink="false">http://flexguruin.wordpress.com/?p=158</guid>
		<description><![CDATA[By default, Spark supports four layouts as given below: spark.layouts.BasicLayout spark.layouts.HorizontalLayout spark.layouts.TileLayout spark.layouts.VerticalLayout Some detail about each of them: BasicLayout: Its similar to absolute layout that we used to have in previous version of flex. Programmer need to explicitly set the position for each component(essentially the x and y OR constraints). This layout should not [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=158&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>By default, Spark supports four layouts as given below:<br />
spark.layouts.BasicLayout<br />
spark.layouts.HorizontalLayout<br />
spark.layouts.TileLayout<br />
spark.layouts.VerticalLayout</p>
<p>Some detail about each of them:<br />
BasicLayout: Its similar to absolute layout that we used to have in previous version of flex. Programmer need to explicitly set the position for each component(essentially the x and y OR constraints). This layout should not be used for List based controls.</p>
<p>HorizontalLayout: arranges the layout elements in horizontal order.</p>
<p>VerticalLayout: arranges the layout elements in vertical order.</p>
<p>TileLayout: arranges the layout elements in rows and columns of equally sized cells. The default size(when not explicitly set), is as square as possible area and is large enough to fit all elements.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flexguruin.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flexguruin.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flexguruin.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flexguruin.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flexguruin.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flexguruin.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flexguruin.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flexguruin.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flexguruin.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flexguruin.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flexguruin.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flexguruin.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flexguruin.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flexguruin.wordpress.com/158/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=158&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flexguruin.wordpress.com/2010/12/21/flex-4-layouts-supported-in-spark/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a6b5790292e0c442500ad92590f6163?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdhanda</media:title>
		</media:content>
	</item>
		<item>
		<title>Flex 4: Text Controls in Spark</title>
		<link>http://flexguruin.wordpress.com/2010/12/18/flex-4-text-controls-in-spark/</link>
		<comments>http://flexguruin.wordpress.com/2010/12/18/flex-4-text-controls-in-spark/#comments</comments>
		<pubDate>Sat, 18 Dec 2010 13:59:22 +0000</pubDate>
		<dc:creator>MD</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Frameworks]]></category>
		<category><![CDATA[flex4]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Spark]]></category>
		<category><![CDATA[spark controls]]></category>
		<category><![CDATA[label]]></category>
		<category><![CDATA[richtext]]></category>
		<category><![CDATA[richeditabletext]]></category>
		<category><![CDATA[textinput]]></category>
		<category><![CDATA[textarea]]></category>

		<guid isPermaLink="false">http://flexguruin.wordpress.com/?p=156</guid>
		<description><![CDATA[Spark supports five types of text controls. These are: Label RichText RichEditableText TextInput TextArea A brief about each: Label &#8211; Label is the most light weight text control in spark. It supports a plain text string displayed without any colorful background. RichText: Similar to Label, it is the next lightweight text control. It supports backgroundColor [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=156&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Spark supports five types of text controls. These are:<br />
Label<br />
RichText<br />
RichEditableText<br />
TextInput<br />
TextArea</p>
<p>A brief about each:<br />
Label &#8211; Label is the most light weight text control in spark. It supports a plain text string displayed without any colorful background.</p>
<p>RichText: Similar to Label, it is the next lightweight text control. It supports backgroundColor property in addition to other properties on Label.</p>
<p>RichEditableText: As the name suggests, it has editable text in addition to RichText control.</p>
<p>TextInput: A single line text input control. In addition, it has &#8216;displayAsPassword&#8217; property.</p>
<p>TextArea: A multiline text control with scrollbar (when needed). It also supports &#8216;displayAsPassword&#8217; property.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flexguruin.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flexguruin.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flexguruin.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flexguruin.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flexguruin.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flexguruin.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flexguruin.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flexguruin.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flexguruin.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flexguruin.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flexguruin.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flexguruin.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flexguruin.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flexguruin.wordpress.com/156/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=156&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flexguruin.wordpress.com/2010/12/18/flex-4-text-controls-in-spark/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a6b5790292e0c442500ad92590f6163?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdhanda</media:title>
		</media:content>
	</item>
		<item>
		<title>Flex 4: Alternatives to Canvas</title>
		<link>http://flexguruin.wordpress.com/2010/12/10/flex-4-alternatives-to-canvas/</link>
		<comments>http://flexguruin.wordpress.com/2010/12/10/flex-4-alternatives-to-canvas/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 04:40:44 +0000</pubDate>
		<dc:creator>MD</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Frameworks]]></category>
		<category><![CDATA[flex4]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Group]]></category>
		<category><![CDATA[BorderContainer]]></category>
		<category><![CDATA[container]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[skin]]></category>

		<guid isPermaLink="false">http://flexguruin.wordpress.com/?p=146</guid>
		<description><![CDATA[Lately, I was looking to use Canvas in my experiment with Flex 4 and found that Canvas is not included in Spark components. Instead I was recommended to use spark.components.BorderContainer OR spark.components.Group class. So, why not Canvas? A good reason for this would be that Canvas was essentially a rectangular container that allowed a programmer [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=146&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Lately, I was looking to use Canvas in my experiment with Flex 4 and found that Canvas is not included in Spark components. Instead I was recommended to use spark.components.BorderContainer OR<br />
spark.components.Group<br />
class.<br />
So, why not Canvas? A good reason for this would be that Canvas was essentially a rectangular container that allowed a programmer to define the x and y properties for its children. So it was kind of a plain container.<br />
In spark, we have BorderContainer which typically does not need a skin. Instead you can use CSS styles with it.<br />
Also, a Group container can be used in place of Canvas. As it just meant to hold the children, to keep it lightweight and for the performance reasons, it can not be skinned.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flexguruin.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flexguruin.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flexguruin.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flexguruin.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flexguruin.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flexguruin.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flexguruin.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flexguruin.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flexguruin.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flexguruin.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flexguruin.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flexguruin.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flexguruin.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flexguruin.wordpress.com/146/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=146&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flexguruin.wordpress.com/2010/12/10/flex-4-alternatives-to-canvas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a6b5790292e0c442500ad92590f6163?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdhanda</media:title>
		</media:content>
	</item>
		<item>
		<title>Flex 4: Spark Component Life Cycle</title>
		<link>http://flexguruin.wordpress.com/2010/12/08/flex-4-spark-component-life-cycle/</link>
		<comments>http://flexguruin.wordpress.com/2010/12/08/flex-4-spark-component-life-cycle/#comments</comments>
		<pubDate>Wed, 08 Dec 2010 15:45:35 +0000</pubDate>
		<dc:creator>MD</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Frameworks]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[flex4]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Spark]]></category>
		<category><![CDATA[spark component life cycle]]></category>
		<category><![CDATA[Gumbo]]></category>
		<category><![CDATA[component life cycle]]></category>

		<guid isPermaLink="false">http://flexguruin.wordpress.com/?p=152</guid>
		<description><![CDATA[In our previous post, we learned about Skins used in Spark Components. Skins are an integral part of Spark Components OR we can say that skins are actually the building blocks for skinnable spark components. Today, we will discuss about the life cycle of a skinnable spark component. During this discussion, we will create an [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=152&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In our previous post, we learned about Skins used in Spark Components. Skins are an integral part of Spark Components OR we can say that skins are actually the building blocks for skinnable spark components.</p>
<p>Today, we will discuss about the life cycle of a skinnable spark component. During this discussion, we will create an actual component as part of this learning. I am not going through the screenshots, instead I will be sharing the code snippets for various steps. You can find the complete source code at the end of this post.</p>
<p>Lets call out skinnable component as &#8216;CustomComponent&#8217;. It will have a textinput to write a message, an append button and a text area with disabled text. User will be able to type the text in textinput control and on click of the append button, this text will be appended to the existing text in textarea.</p>
<p>First we need to create a skin for our CustomComponent. Lets call it CustomComponentSkin.</p>
<p>Steps to create a skin:</p>
<ul>
<li>In Flashbuilder, right click on your mouse. Select New &gt; MXML Skin.</li>
<li>In the opened dialog, give &#8216;skin&#8217; as package name. Name will be &#8216;CustomComponentSkin&#8217; and Host Component will be &#8216;CustomComponent&#8217;.</li>
<li>Click Ok and Flashbuilder will create a Skin with default settings.</li>
</ul>
<p>In Spark, a component is made up of a skin and a component class. Skin class actually hold the parts(in our case, textinput, button and textarea) and component class manipulates these parts and their properties for various functionalities.</p>
<p>So we need to create those parts(textinput, button and textarea) in CustomComponentSkin as below:</p>
<p><pre class="brush: xml; wrap-lines: true;">

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;s:Skin xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
 xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;
 xmlns:mx=&quot;library://ns.adobe.com/flex/mx&quot;&gt;

 &lt;!-- host component --&gt;
 &lt;fx:Metadata&gt;
 [HostComponent(&quot;ui.CustomComponent&quot;)]
 &lt;/fx:Metadata&gt;

 &lt;!-- Define the normal view state. --&gt;
 &lt;s:states&gt;
 &lt;s:State name=&quot;normal&quot;/&gt;
 &lt;/s:states&gt;

 &lt;!--- Defines the appearance of the TextInput subcomponent. --&gt;
 &lt;s:TextInput id=&quot;textInput&quot;
 width=&quot;150&quot;
 x=&quot;0&quot;
 minHeight=&quot;25&quot;/&gt;

 &lt;!--- Defines the appearance of the Button subcomponent. --&gt;
 &lt;s:Button id=&quot;appendButton&quot;
 width=&quot;150&quot;
 x=&quot;175&quot;
 minHeight=&quot;25&quot;/&gt;

 &lt;!--- Defines the appearance of the TextArea subcomponent. --&gt;
 &lt;s:TextArea id=&quot;textArea&quot;
 width=&quot;400&quot;
 x=&quot;0&quot;
 y=&quot;50&quot;/&gt;
&lt;/s:Skin&gt;

</pre></p>
<p>As you have noticed, we also provided the metadata tag HostComponent pointing to our CustomComponent.</p>
<p>Now we have our components skin ready, lets move to create the actual component. Before we create our component, I would prefer to step through the various calls/functions used for it quickly (from adobe docs).</p>
<ol>
<li>Create the skin class for the component. You typically create the skin class in MXML. For more information on skins, see <a title="Spark Skinning" href="http://help.adobe.com/en_US/flex/using/WS53116913-F952-4b21-831F-9DE85B647C8A.html" target="_blank">Spark Skinning</a>.</li>
<li>Create the component’s ActionScript class file.
<ol>
<li>For a skinnable component, extend one of the base classes, such as SkinnableComponent, or a subclass of class SkinnableComponent. For a nonskinnable component, extend UIComponent or a Spark class that does not have SkinnableComponent in it class hierarchy.</li>
<li>Implement the constructor.</li>
<li>Implement the <strong>UIComponent.createChildren()</strong> method. You rarely have to implement this method for Spark components.</li>
<li>Implement the <strong>UIComponent.commitProperties()</strong> method.</li>
<li>Implement the <strong>UIComponent.measure()</strong> method. You rarely have to implement this method for Spark components.</li>
<li>Implement the <strong>UIComponent.updateDisplayList()</strong> method. You rarely have to implement this method for Spark components.</li>
<li>For a skinnable component, implement the <strong>SkinnableComponent.partAdded()</strong> and <strong>SkinnableComponent.partRemoved()</strong> methods.</li>
<li>For a skinnable component, implement the <strong>SkinnableComponent.getCurrentSkinState()</strong> method.</li>
<li>Add properties, methods, styles, events, and metadata.</li>
</ol>
</li>
<li>Deploy the component as an ActionScript file or as a SWC file.</li>
</ol>
<p>You do not have to override all component methods to define a new component. You only override the methods required to implement the functionality of your component. If you create a subclass of an existing component, such as Button, you implement only the methods necessary for you to add any new functionality to the component.</p>
<p>Lets step through the component creation with the implementation of necessary functions:</p>
<ul>
<li>In Flashbuilder, right click and select New &gt; ActionScript Class.</li>
<li>Type in &#8216;ui&#8217; as the package name, &#8216;CustomComponent&#8217; in the name field and select &#8216;SkinnableComponent&#8217; as the super class.</li>
<li>Click Finish. Flashbuilder will generate the wrapper class structure with a default constructor.</li>
<li>Set the skinclass (that we just created above) in the constructor using setStyle function as shown below:</li>
</ul>
<p><pre class="brush: as3; wrap-lines: true;">

package ui
{
 import spark.components.supportClasses.SkinnableComponent;

 public class CustomComponent extends SkinnableComponent
 {
 public function CustomComponent()
 {
 super();

 // Set the skinClass style to the name of the skin class.
 setStyle(&quot;skinClass&quot;, CustomComponentSkin);
 }
 }
}

</pre></p>
<ul>
<li>In next step, define the skin parts for the TextInput, Button and TextArea subcomponents and implement the commitProperties() method to handle any changes to the CustomComponent&#8217;s properties as shown below:</li>
</ul>
<p><pre class="brush: as3; wrap-lines: true;">

[SkinPart(required=&quot;true&quot;)]
 public var textInput:TextInput;

 [SkinPart(required=&quot;true&quot;)]
 public var appendButton:Button;

 [SkinPart(required=&quot;true&quot;)]
 public var textArea:TextArea;

override protected function commitProperties():void {
 super.commitProperties();

 if (bTextChanged) {
 bTextChanged = false;
 textInput.text = _text;
 }
 }

</pre></p>
<ul>
<li>In next step, implement the partAdded() method to initialize  the TextInput, Button and TextArea subcomponents. Also implement the partRemoved() method to remove the eventlisteners added by the partAdded().</li>
</ul>
<p><pre class="brush: as3; wrap-lines: true;">

override protected function partAdded(partName:String, instance:Object):void {
 super.partAdded(partName, instance);
 if (instance == textInput) {
 textInput.text= _text;
 textInput.addEventListener(&quot;change&quot;, textInput_changeHandler);
 }

 if (instance == appendButton) {
 appendButton.label = &quot;Append Text&quot;;
 appendButton.addEventListener(&quot;click&quot;, appendButton_clickHandler);
 }

 if (instance == textArea) {
 textArea.editable = false;
 }
 }

override protected function partRemoved(partName:String, instance:Object):void {
 super.partRemoved(partName, instance);

 if (instance == textInput) {
 textInput.removeEventListener(&quot;change&quot;, textInput_changeHandler);
 }

 if (instance == appendButton) {
 appendButton.removeEventListener(&quot;click&quot;, appendButton_clickHandler);
 }

 if (instance == textArea) {
 //textArea.removeEventListener(&quot;change&quot;, textArea_changeHandler);
 }
 }

</pre></p>
<ul>
<li>In the next step, add properties, methods and metadata.</li>
</ul>
<p><pre class="brush: as3; wrap-lines: true;">

private var _text:String = &quot;Enter your text&quot;;
 private var bTextChanged:Boolean = false;

 // Create a getter/setter pair for the text property.
 [Bindable]
 public function set text(t:String):void {
 trace(&quot;In set text&quot;);
 _text = t;
 bTextChanged = true;
 invalidateProperties();
 }

 public function get text():String {
 trace(&quot;In get text&quot;);
 return textInput.text;
 }

 // Dispatch a change event when the CustomComponent.text
 // property changes.
 private function textInput_changeHandler(eventObj:Event):void {
 dispatchEvent(new Event(&quot;change&quot;));
 }

 // Handle the Button click event to append text
 // to the TextArea subcomponent.
 private function appendButton_clickHandler(eventObj:Event):void {
 if(textInput.text.length &lt; 5)
 {
 textArea.text += &quot;Oh.. sorry buddy. You were less then 5, the minimum required length..hehehe..\n&quot; + &quot;[Text length this turn: &quot; + textInput.text.length + &quot;]\n\n&quot;;
 }
 else
 {
 textArea.text += textInput.text + &quot;\n&quot; + &quot;[Text length this turn: &quot; + textInput.text.length + &quot;]\n\n&quot;;
 }
 }

</pre></p>
<p>And we are done.</p>
<p>Here is how our CustomComponent.as will look like finally. I have added the steps and trace statements for various function calls to better understand the control flow. It has some additional functions just to trace the control flow in a component life cycle.</p>
<p><pre class="brush: as3; wrap-lines: true;">

package ui
{
 import flash.events.Event;

 import mx.events.FlexEvent;

 import skin.CustomComponentSkin;

 import spark.components.Button;
 import spark.components.TextArea;
 import spark.components.TextInput;
 import spark.components.supportClasses.SkinnableComponent;

 // CustomComponent dispatches a change event when the text of the
 // TextInput subcomponent changes.
 [Event(name=&quot;change&quot;, type=&quot;flash.events.Event&quot;)]

 /** a) Extend SkinnableComponent. */
 public class CustomComponent extends SkinnableComponent
 {
 /** b) Implement the constructor. */
 public function CustomComponent()
 {
 //TODO: implement function
 trace(&quot;In constructor&quot;);
 super();

 // Set the skinClass style to the name of the skin class.
 setStyle(&quot;skinClass&quot;, CustomComponentSkin);

 //Adding eventlisteners
 addEventListener(FlexEvent.PREINITIALIZE, preInitializeHandler);
 addEventListener(FlexEvent.INITIALIZE, initializeHandler);
 addEventListener(FlexEvent.CREATION_COMPLETE, creationCompleteHandler);
 addEventListener(FlexEvent.UPDATE_COMPLETE, updateCompleteHandler);
 }

 override protected function createChildren():void {
 trace(&quot;In createChildren&quot;);
 super.createChildren();
 }

 /** c) Define the skin parts for the TextInput, Button
 *     and TextArea subcomponents. **/
 [SkinPart(required=&quot;true&quot;)]
 public var textInput:TextInput;

 [SkinPart(required=&quot;true&quot;)]
 public var appendButton:Button;

 [SkinPart(required=&quot;true&quot;)]
 public var textArea:TextArea;

 /** d) Implement the commitProperties() method to handle the
 *     change to the CustomComponent.text property.
 *     Changes to the CustomComponent.text property are copied to
 *     the TextArea subcomponent. */
 override protected function commitProperties():void {
 trace(&quot;In commitProperties&quot;);
 super.commitProperties();

 if (bTextChanged) {
 bTextChanged = false;
 textInput.text = _text;
 }
 }

 override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
 trace(&quot;In updateDisplayList&quot;);
 super.updateDisplayList(unscaledWidth, unscaledHeight);
 }

 override protected function measure():void {
 trace(&quot;In measure&quot;);
 super.measure();
 }

 override protected function attachSkin():void {
 trace(&quot;In attachSkin&quot;);
 super.attachSkin();
 }

 override protected function detachSkin():void {
 trace(&quot;In detachSkin&quot;);
 super.detachSkin();
 }

 /** e) Implement the partAdded() method to
 *     initialize the TextInput, Button and TextArea subcomponents. */
 override protected function partAdded(partName:String, instance:Object):void {
 trace(&quot;In partAdded&quot;);
 super.partAdded(partName, instance);
 if (instance == textInput) {
 textInput.text= _text;
 textInput.addEventListener(&quot;change&quot;, textInput_changeHandler);
 }

 if (instance == appendButton) {
 appendButton.label = &quot;Append Text&quot;;
 appendButton.addEventListener(&quot;click&quot;, appendButton_clickHandler);
 }

 if (instance == textArea) {
 textArea.editable = false;
 }
 }

 /** f) Implement the partRemoved() method to remove the
 *     event listeners added by partAdded(). */
 override protected function partRemoved(partName:String, instance:Object):void {
 trace(&quot;In partRemoved&quot;);
 super.partRemoved(partName, instance);

 if (instance == textInput) {
 textInput.removeEventListener(&quot;change&quot;, textInput_changeHandler);
 }

 if (instance == appendButton) {
 appendButton.removeEventListener(&quot;click&quot;, appendButton_clickHandler);
 }

 if (instance == textArea) {
 //textArea.removeEventListener(&quot;change&quot;, textArea_changeHandler);
 }
 }

 /** g) Add methods, properties, and metadata.
 *     The general pattern for properties is to specify a
 *     private holder variable. */

 // Implement the CustomComponent.text property.
 private var _text:String = &quot;Enter your text&quot;;
 private var bTextChanged:Boolean = false;

 // Create a getter/setter pair for the text property.
 [Bindable]
 public function set text(t:String):void {
 trace(&quot;In set text&quot;);
 _text = t;
 bTextChanged = true;
 invalidateProperties();
 }

 public function get text():String {
 trace(&quot;In get text&quot;);
 return textInput.text;
 }

 // Dispatch a change event when the CustomComponent.text
 // property changes.
 private function textInput_changeHandler(eventObj:Event):void {
 dispatchEvent(new Event(&quot;change&quot;));
 }

 // Handle the Button click event to append text
 // to the TextArea subcomponent.
 private function appendButton_clickHandler(eventObj:Event):void {
 if(textInput.text.length &lt; 5)
 {
 textArea.text += &quot;Oh.. sorry buddy. You were less then 5, the minimum required length..hehehe..\n&quot; + &quot;[Text length this turn: &quot; + textInput.text.length + &quot;]\n\n&quot;;
 }
 else
 {
 textArea.text += textInput.text + &quot;\n&quot; + &quot;[Text length this turn: &quot; + textInput.text.length + &quot;]\n\n&quot;;
 }
 }

 private function preInitializeHandler(eventObj:Event):void {
 trace(&quot;In preInitialize&quot;);
 }
 private function initializeHandler(eventObj:Event):void {
 trace(&quot;In initialize&quot;);
 }
 private function creationCompleteHandler(eventObj:Event):void {
 trace(&quot;In creationcomplete&quot;);
 }
 private function updateCompleteHandler(eventObj:Event):void {
 trace(&quot;In updatecomplete&quot;);
 }

 }
}

</pre></p>
<p>You can download the complete <a href="https://docs.google.com/uc?id=0B_0bXy32fSYlOTdiZDBkZDMtMmRhMi00MTY4LTgwMTktMjAzOTE0YTc2NTg5&amp;export=download&amp;hl=en" target="_blank">project source code from here</a>.</p>
<p>Enjoy flexing <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flexguruin.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flexguruin.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flexguruin.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flexguruin.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flexguruin.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flexguruin.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flexguruin.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flexguruin.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flexguruin.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flexguruin.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flexguruin.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flexguruin.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flexguruin.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flexguruin.wordpress.com/152/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=152&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flexguruin.wordpress.com/2010/12/08/flex-4-spark-component-life-cycle/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a6b5790292e0c442500ad92590f6163?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdhanda</media:title>
		</media:content>
	</item>
		<item>
		<title>Flex 4: Spark Component Overview</title>
		<link>http://flexguruin.wordpress.com/2010/12/03/flex-4-spark-component-overview/</link>
		<comments>http://flexguruin.wordpress.com/2010/12/03/flex-4-spark-component-overview/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 06:42:40 +0000</pubDate>
		<dc:creator>MD</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Frameworks]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[flex4]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Spark]]></category>
		<category><![CDATA[spark component life cycle]]></category>
		<category><![CDATA[spark component overview]]></category>

		<guid isPermaLink="false">http://flexguruin.wordpress.com/?p=149</guid>
		<description><![CDATA[Spark component = Component + Skin As you see above a spark component is equivalent to a component (which has all the functionality defined) and a skin (which describes a components visual behavior). Spark components are generally referred as &#8216;Skinnable Spark Components&#8217;. Spark components can swap a skin at runtime. Looking at the spark package, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=149&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Spark component = Component + Skin</p>
<p>As you see above a spark  component is equivalent to a component (which has all the functionality  defined) and a skin (which describes a components visual behavior).</p>
<p>Spark components are generally referred as &#8216;Skinnable Spark Components&#8217;. Spark components can swap a skin at runtime.</p>
<p>Looking  at the spark package, one will find that every (skinnable) spark  component is associated with a default spark skin through defaults.css  (can be found at sdks\4.x.x\frameworks\projects\spark\defaults.css)  which has entries like:</p>
<p><pre class="brush: css;">

NumericStepper
 {
 skinClass: ClassReference(&quot;spark.skins.spark.NumericStepperSkin&quot;);
 }

</pre></p>
<p><strong>Looking into Skins:</strong></p>
<p>Skin Parts:</p>
<p>As  I mentioned, a skin defines the visual behavior of a component. It  consists multiple constituent elements to make a whole component. For  example, a NumericStepper component usually has 3 parts: a textinput, an  up (increment) button and a down (decrement) button. Now these 3 parts  are defined with a new metadata tag called [SkinPart(required="true")]  where &#8216;required&#8217; can be &#8216;true&#8217; or &#8216;false&#8217;. As for the NumericStepper, a  textinput is a required part and rest 2 buttons are not mandatory.</p>
<p>One  important point to note here is that these parts are defined in  component class (spark.components.NumericStepper) while their visual  appearance and implementation is defined in skin class  (spark.skins.spark.NumericStepperSkin).</p>
<p>State Changes:</p>
<p>Often  state changes meant to cause the visual appearance to be changed and  hence skin changes to reflect the state changes. So, the states are  declared in skin classes and used to identify different states that a  component can assume visually.</p>
<p>We will discuss the Spark Component Life Cycle in the next post.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flexguruin.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flexguruin.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flexguruin.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flexguruin.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flexguruin.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flexguruin.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flexguruin.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flexguruin.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flexguruin.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flexguruin.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flexguruin.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flexguruin.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flexguruin.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flexguruin.wordpress.com/149/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=149&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flexguruin.wordpress.com/2010/12/03/flex-4-spark-component-overview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a6b5790292e0c442500ad92590f6163?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdhanda</media:title>
		</media:content>
	</item>
		<item>
		<title>Flex 4: NumericStepper vs Spinner</title>
		<link>http://flexguruin.wordpress.com/2010/12/01/flex-4-numericstepper-vs-spinner/</link>
		<comments>http://flexguruin.wordpress.com/2010/12/01/flex-4-numericstepper-vs-spinner/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 04:50:49 +0000</pubDate>
		<dc:creator>MD</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Frameworks]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[NumericStepper]]></category>
		<category><![CDATA[Spinner]]></category>
		<category><![CDATA[Spark]]></category>

		<guid isPermaLink="false">http://flexguruin.wordpress.com/?p=138</guid>
		<description><![CDATA[NumericStepper is similar to Spinner (infact extends Spinner) except that it allows user to directly edit the value of the component.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=138&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>NumericStepper is similar to Spinner (infact extends Spinner) except that it allows user to directly edit the value of the component.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flexguruin.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flexguruin.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flexguruin.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flexguruin.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flexguruin.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flexguruin.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flexguruin.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flexguruin.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flexguruin.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flexguruin.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flexguruin.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flexguruin.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flexguruin.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flexguruin.wordpress.com/138/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flexguruin.wordpress.com&amp;blog=15527845&amp;post=138&amp;subd=flexguruin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flexguruin.wordpress.com/2010/12/01/flex-4-numericstepper-vs-spinner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a6b5790292e0c442500ad92590f6163?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdhanda</media:title>
		</media:content>
	</item>
	</channel>
</rss>
