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

<channel>
	<title>Go!Verla Flex Blog &#187; tearaway_Tea</title>
	<atom:link href="http://tearaway-tea.com/blog/author/tearaway_tea/feed/en/" rel="self" type="application/rss+xml" />
	<link>http://tearaway-tea.com/blog</link>
	<description>by Ievgen Tiutiunnyk</description>
	<lastBuildDate>Mon, 31 Aug 2009 04:21:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Usage Example of Weak References</title>
		<link>http://tearaway-tea.com/blog/2009/02/usage-example-of-weak-references/en/</link>
		<comments>http://tearaway-tea.com/blog/2009/02/usage-example-of-weak-references/en/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 18:09:40 +0000</pubDate>
		<dc:creator>tearaway_Tea</dc:creator>
				<category><![CDATA[Action Script]]></category>

		<guid isPermaLink="false">http://tearaway-tea.com/blog/?p=305</guid>
		<description><![CDATA[You might have heard about weak references which are used when listener functions for events in Action Script are being set. In 2006 gskinner  was wondering why all the listeners were not set in weak reference mode. Some of guys on Habrahabr in comments to my article about functions contexts insisted on the fact that weak [...]]]></description>
			<content:encoded><![CDATA[<p>You might have heard about weak references which are used when listener functions for events in Action Script are being set. In 2006 gskinner <a href="http://gskinner.com/blog/archives/2006/07/as3_weakly_refe.html"> was wondering</a> why all the listeners were not set in weak reference mode. Some of guys on Habrahabr in comments to my article about functions contexts insisted on the fact that weak references are the bad practice and all the operations related to their removal you should do only manually.</p>
<p>I have known about them for a long time because I try to keep tabs on all Adobe&#8217;s news but I understood how it works recently just after using Flex Builder&#8217;s profiler. Instead of retelling background information I will give you an example where you might see how useful these weak references may be:</p>
<p><span id="more-305"></span></p>
<pre><code>public class GuestbookEntry
{
	public function get comments() : ArrayCollection
	{
		return _comments;
	}

	public function set comments(value : ArrayCollection) : void
	{
		if (_comments != null)
		{
			_comments.removeEventListener(CollectionEvent.COLLECTION_CHANGE,
				onCommentsChange);
		}

		_comments = value;

		if (value != null)
		{
			value.addEventListener(CollectionEvent.COLLECTION_CHANGE,
				onCommentsChange, false, 0, true);
		}
	}

	protected function onCommentsChange(event : CollectionEvent) : void
	{
		switch (event.kind)
		{
			case CollectionEventKind.ADD :
				CommentEntry(event.items[0]).guestbookEntry = this;
				break;
		}
	}

	private var _comments : ArrayCollection;
}</code></pre>
<p>Let&#8217;s imagine we have got a guest-book and its record type GuestbookEntry which is represented above. This type has its own collection of comments. Let the comment be described by CommentEntry type. Somewhere there is an UI form for adding new comments. By the architecture of the project we are  required to give each comment a reference to guest-book&#8217;s record by <em>guestbookEntry</em> property.</p>
<p>GuestbookEntry instances are likely to be received from server but it doesn&#8217;t matter. In <em>comments</em> property&#8217;s setter I subscribe to the collection change event to control the moment of adding a new comment. As you can see the reference to the method <em>onCommentsChange</em> is transfered into the collection as weak one (the last argument of <em>addEventListener</em> method).</p>
<p>During application profiling with such a kind of code before using weak references in it all of instances of the GuestbookEntry that have ever been created remain there. The inspector of loitering objects shows two types of connection between GuestbookEntry and CommentEntry instances: one is maintained via <em>guestbookEntry</em> property another one via <em>onCommentsChange</em> (its instance is held by the collection of comments) method&#8217;s savedThis (the context of the function) which refers on the guest-book&#8217;s entry.</p>
<p>As far as I understand Flash Player&#8217;s garbage collector automatically clear the memory from objects that are connected with the help of strong references (including cycling ones) but if there are event references it can&#8217;t do anything. That is where weak references may be useful. There is no risk of using them because usually they are the last references that are left between objects and are ready to be collected.</p>
<p>Thoughtful reader who loves Martin Fauler will mention and ask what stop us from deleting these references manually? I will answer: nothing, but such decisions would be bulky and ugly. In this case I might need to realize something like <em>dispose()</em> in GuestbookEntry class:</p>
<pre><code>public function dispose() : void
{
	comments = null;
}</code></pre>
<p>and call this method everywhere where I say goodbye to the instances of entries in the guest-book. It is boring, old-fashion and not practical at all.</p>
<p><strong>UPD.</strong>: After discussing with colleagues I found out some situations where weak references may play a dirty trick on you. For example if you have an object without strong references which is linked to another object by weak reference it would receive events until it is deleted by garbage collector and probably the processing of these events may appear to be unexpected as far as you  have forgot about that object. To avoid such situations you of course need to delete listeners manually.</p>
<p>My example does not have that kind of issue. As guest-book entries are deleted along with their comments it is impossible to change the collection of comments after straight references to GuestbookEntry are removed and before they are deleted by garbage collector.</p>
]]></content:encoded>
			<wfw:commentRss>http://tearaway-tea.com/blog/2009/02/usage-example-of-weak-references/en/feed/en/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Best Code Pattern for RemoteObject</title>
		<link>http://tearaway-tea.com/blog/2009/02/the-best-code-pattern-for-remoteobject/en/</link>
		<comments>http://tearaway-tea.com/blog/2009/02/the-best-code-pattern-for-remoteobject/en/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 20:40:55 +0000</pubDate>
		<dc:creator>tearaway_Tea</dc:creator>
				<category><![CDATA[Action Script]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://tearaway-tea.com/blog/?p=297</guid>
		<description><![CDATA[Continuing the topic Advises for beginners I am going to talk about the most comfortable way to incapsulate server&#8217;s methods calls. Let&#8217;s call it ServiceBase pattern. It is a base class for all your possible services (bunch of methods which correspond to the server ones):

class ServiceBase
{
	public function ServiceBase(destination : String,
		resultHandler : Function = null, faultHandler [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing the topic <a title="&quot;Советы" href="&quot;http://tearaway-tea.com/blog/2008/12/советы-новичкам/&quot;">Advises for beginners</a> I am going to talk about the most comfortable way to incapsulate server&#8217;s methods calls. Let&#8217;s call it ServiceBase pattern. It is a base class for all your possible services (bunch of methods which correspond to the server ones):</p>
<p><span id="more-297"></span></p>
<pre><code>class ServiceBase
{
	public function ServiceBase(destination : String,
		resultHandler : Function = null, faultHandler : Function = null)
	{
		_resultHandler = resultHandler;
		_faultHandler = faultHandler;

		_remoteObject = new RemoteObject(destination);
	}

	protected function call(name : String, args : Array) : void
	{
		CursorManager.setBusyCursor();

		var operation : AbstractOperation = _remoteObject.getOperation(name);
		operation.addEventListener(ResultEvent.RESULT, onResult);
		operation.addEventListener(FaultEvent.FAULT, onFault);
		operation.send.apply(operation, args);
	}

	protected function onResult(event : ResultEvent) : void
	{
		CursorManager.removeBusyCursor();

		if (_resultHandler != null)
		{
			_resultHandler(event.result);
		}
	}

	protected function onFault(event : FaultEvent) : void
	{
		CursorManager.removeBusyCursor();

		if (_faultHandler != null)
		{
			_faultHandler(event.fault);
		}
	}

	private var _resultHandler : Function;

	private var _faultHandler : Function;

	private var _remoteObject : RemoteObject;
}</code></pre>
<p>I have seen similar solutions in different projects but they were not that useful. The class is not very clear for understanding itself but with the second one it will be easier to get the idea:</p>
<pre><code>class GuestbookService extends ServiceBase
{
	public function GuestbookService(resultHandler : Function = null,
		faultHandler : Function = null)
	{
		super("GuestbookAction", resultHandler, faultHandler);
	}

	public function getGuestbookEntries() : void
	{
		call("getGuestbookEntries", arguments);
	}

	public function getEntryById(id : Number) : void
	{
		call("getEntryById", arguments);
	}

	public function updateEntry(id : Number, text : String) : void
	{
		call("updateEntry", arguments);
	}
}</code></pre>
<p>That class is a service for working with a guestbook. It has all the methods which server class GuestbookAction (Servlet, Facade depends of platform) do. The constructor has non-required arguments <em>resultHandler</em> and <em>faultHandler</em>, these functions are invoked with the result of a server callback or error information. Usage example:</p>
<pre><code>new GuestbookService().updateEntry(5, "Nice solution!");</code></pre>
<p>or</p>
<pre><code>new GuestbookService(onGetEntryById).getEntryById(6);

function onGetEntryById(result : GuestbookEntry) : void
{
	_list.addItem(result);
}</code></pre>
<p>The main feature is that we do not save the reference to GuestbookService instance, it is unnecessary after the call is completed. That issue may be useful if we are going to make multiple server calls. In that case we could create a service instance for each call.</p>
<p>I like this approach much more then low level syntax based on RemoteObject instance because it is simple and clear. That kind of inheritors could be also generated automatically on the base of structure of server classes. In that case you get a total control over server and client methods accordance. If there are some mismatches the compiler will not be able to build your project.</p>
<p>That kind of solution may also help you with unit-testing. You can replace the base class of your service with something like MockServiceBase.</p>
]]></content:encoded>
			<wfw:commentRss>http://tearaway-tea.com/blog/2009/02/the-best-code-pattern-for-remoteobject/en/feed/en/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>To Flex Or Not To Flex</title>
		<link>http://tearaway-tea.com/blog/2008/09/to-flex-or-not-to-flex-en/en/</link>
		<comments>http://tearaway-tea.com/blog/2008/09/to-flex-or-not-to-flex-en/en/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 21:27:29 +0000</pubDate>
		<dc:creator>tearaway_Tea</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://tearaway-tea.com/blog/?p=288</guid>
		<description><![CDATA[In this article I would like to share my experience in application development using Flex to make it easier for you to choose to use or not to use it in particular situations. Far too often it appears that using Flex is not only unwelcome because of time limits but can also be damaging to [...]]]></description>
			<content:encoded><![CDATA[<p>In this article I would like to share my experience in application development using Flex to make it easier for you to choose to use or not to use it in particular situations. Far too often it appears that using Flex is not only unwelcome because of time limits but can also be damaging to the project.</p>
<p>First let&#8217;s overview application types to search for the fertile field for starting Flex development. Apparently we can already divide the applications we are interested in into desktop and web-top applications. Web applications may be usual (casual) or RIA, and each of them may have either <em>front-end</em> (surface site) or <em>back-end</em> (admin panel). We must never forget that they may be internet type for casual men of the web and intranet type for corporative users. With the help of Adobe AIR Flex became available on desktop but its usage comply with the same requirements as it does on web.</p>
<p><span id="more-288"></span></p>
<h3>Web applications which are not RIA</h3>
<p>You almost never need Flex to develop classic sites. I mean home pages, news services, forums, blogs, portals, social networks etc. Everybody who try it on the base of anything except HTML+JS, receive inflexible hardly indexable craft which has problems with text rendering and holding standard behavior in browsers and so on.</p>
<p>I took part in the development of such a kind of project in <a href="http://sonopia.com">Sonopia</a>. Our authorities who were impressed by RIA features wanted us to work out a social network on Flex which supposed to be full of media content and other ultra-things. As a result we got the list of standard services such as Dashboard, Profile, Photos, Guestbook that appeared to be at least awkward. Users could not put formatting tags, photo references and flash widgets in Guestbook. Site navigation did not synchronize properly with the button &#8220;Back&#8221; in browser. The application weighted 1,5 Мb performing the minimal list of functions. Once everybody had noticed that the speed of development of something that should have not been considered as Flex was twice as long as using HTML. The rest of the project was written using standard technologies. As a result we came up again problems with synchronization between both HTML and Flex parts of the project. A bit later Flex developers crew was disbanded and the project failed.</p>
<p>Another example is portal <em>top4top.ru</em>. Although it was foreseeingly written using pure Action Script it is a spectacular example of incorrect positioning of technology (not to mention the whole ideological trend).</p>
<p>For personal interest while studying Flex I made with the help of it several standard web sites for the <a href="http://etwasunders.com">Etwas Unders</a> band and for <a href="http://jmak.com.ua/">JMAK studio</a>. As far as the number of chapters and content was not so wide they looked good enough. Although lots of inviters could not understand why I did use Flex. I agree there was no proper reason for this. The only advantage is that there were almost no problems while adapting them to the different browsers (I agree that it could be the main advantage in some cases).</p>
<p><img class="alignnone" title="Etwas Unders" src="http://tearaway-tea.com/blog/wp-content/uploads/2008/09/etwasunders.jpg" alt="" width="500" height="350" /></p>
<p>Recently I came across <em>xoalt.com</em> the internet-catalogue of goods. Such projects as well as internet-markets or just catalogues of something you must never develop with Flex. The main feature of such projects is high accessibility to searching engines in which Flex as well as all flash applications traditionally is not too good.</p>
<p><img class="alignnone" title="Xoalt" src="http://tearaway-tea.com/blog/wp-content/uploads/2008/09/xoalt.jpg" alt="" width="500" height="350" /></p>
<p>The development of administrative panels is also quite doubtful. You will have some problems in case you need flexible work with text but if you need to show a lot of tabular data with ability to edit it then Flex with AdvancedDataGrid component may be useful. Drag-n-drop is also possible on JS but I do not resist the fact that Flex may do it easier and more quickly.</p>
<h3>RIA</h3>
<p>Strange though it may appear Flex does not always rule here also. Sometimes it seems that in general flash player is used only for playing music and video. But once HTML 5 is likely to support these features why should we use Flex? Though it may seem that Flex will never find its stable field and is always going to be just an alternative but do not worry there is a range of situations were Flex is totally useful. I am going to describe something like a project requirements which can be done successfully if you choose Flex.</p>
<p><em>&#8220;We need to develop a huge cross-browser web system for monitoring/management/statistics of particular processes of particular company or product. It is expected that there would be lots of hierarchic or tabular data in the system which you need to sort out, group or edit. We need to develop more then ten different forms of entering and editing data. The code must realize OOP practices and be self-descriptive as far as the project is quite long-term and staff turnover is inevitable.</em>&#8221;</p>
<p>or</p>
<p><em>&#8220;We need the on-line system for processing video-signals from several sources as well as appropriate UI for base editing and saving content to server.&#8221;</em></p>
<p>We might come up with more examples and all of them would be connected with similar feature which is essential for Flex.</p>
<blockquote><p>Flex is the best way to develop web applications with big amount of forms including custom input controls with the ability to skinning them including all multimedia features of flash-player on the object oriented code base which is easy to support and maintain.</p></blockquote>
<p>Since these criterias fully content corporative systems we do not see too many Flex applications that would be popular among well-known internet services except on-line photoshops and video editors.</p>
<p>Now I am involved in developing such a corporative system to manage advertising content on television. Instead of being long-winded I would present several UI wireframes which must be realized very soon.</p>
<p><img class="alignnone" title="Wideorbit" src="http://tearaway-tea.com/blog/wp-content/uploads/2008/09/wideorbit-1.jpg" alt="" width="500" height="325" /></p>
<p><img class="alignnone" title="Wideorbit" src="http://tearaway-tea.com/blog/wp-content/uploads/2008/09/wideorbit-2.jpg" alt="" width="500" height="325" /></p>
<p>I suppose there is no need to give any extra comments about why Flex was used here. This article altogether is one big comment which was caused by this project.</p>
<p>To conclude we should resume saying obvious things. Your purpose as a developer is to weight lots of  factors of future application and basing on this information not to chose (which happens more often) or to chose Flex. If you are being hired as a Flex developer in a project where its role is doubtful or even absurd then think twice not to become weak link in the eyes of rude java-developers or proud-selves c#-developers, you know, your team-mates (I have such an experience).</p>
]]></content:encoded>
			<wfw:commentRss>http://tearaway-tea.com/blog/2008/09/to-flex-or-not-to-flex-en/en/feed/en/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>My Two Cents About Mate Flex Framework</title>
		<link>http://tearaway-tea.com/blog/2008/09/my-two-cents-about-mate-flex-framework/en/</link>
		<comments>http://tearaway-tea.com/blog/2008/09/my-two-cents-about-mate-flex-framework/en/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 21:06:14 +0000</pubDate>
		<dc:creator>tearaway_Tea</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://tearaway-tea.com/blog/?p=261</guid>
		<description><![CDATA[Until the last moment I have been very sceptic about every Flex framework I have seen. I have not paid too much attention to Cairngorm or PureMVC but I was aware of their specifics. For example I don&#8217;t really like a global accessibility of View which appears to be available everywhere in code of a [...]]]></description>
			<content:encoded><![CDATA[<p>Until the last moment I have been very sceptic about every Flex framework I have seen. I have not paid too much attention to <a href="http://opensource.adobe.com/wiki/display/cairngorm/">Cairngorm</a> or <a href="http://puremvc.org/">PureMVC</a> but I was aware of their specifics. For example I don&#8217;t really like a global accessibility of <em>View</em> which appears to be available everywhere in code of a project which is written using <em>Cairngorm</em>. Also I was stuck with amount of mediator classes in <em>PureMVC</em> which cause growing up of the code&#8217;s size. That is why I have never used something except default component and event model of Flex Framework.</p>
<p>I was impressed by great feedbacks of RIA-gurus and decided to find out that is the matter. Don&#8217;t expect, I am not going to write about <a href="http://mate.asfusion.com/">Mate</a>&#8217;s model behavior but I will write only a few sentences. Mate is really cool!</p>
<p>I think the success of <em>Mate</em> relates to the fact that framework is not ported but exclusively written for Flex. It uses the main (maybe not very correct) principals and peculiarities of Flex Framework, such as:</p>
<ul>
<li>Inheritance of all visual components from EventDispatcher which give us possibility to use bubbling-events as transport messages between <em>View</em> and <em>Model</em>.</li>
<li>Binding for <em>IOC</em> (Inversion of Controls).</li>
<li>MXML for describing in simple way dependency declarations between application&#8217;s layers.</li>
</ul>
<p>All I have described above works with your custom classes and components without mandatory inheriting of fatiguable abstract classes for commands, mediators, models etc. And for afters <em>Mate</em> Framework is extensible by custom plugins.</p>
<p>Altogether you could get the first impression after reading <em>Mate</em> documentation not longer then one hour. Reviewing of the source code confirms that framework&#8217;s authors are good professionals who turned back Flex&#8217;s issues to benefits. Let&#8217;s use it.</p>
]]></content:encoded>
			<wfw:commentRss>http://tearaway-tea.com/blog/2008/09/my-two-cents-about-mate-flex-framework/en/feed/en/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ResizeableLayoutBox Component</title>
		<link>http://tearaway-tea.com/blog/2008/03/resizeablelayoutbox-component/en/</link>
		<comments>http://tearaway-tea.com/blog/2008/03/resizeablelayoutbox-component/en/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 20:36:40 +0000</pubDate>
		<dc:creator>tearaway_Tea</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Go!Verla]]></category>

		<guid isPermaLink="false">http://tearaway-tea.com/blog/?p=256</guid>
		<description><![CDATA[There is an example.

The component ResizeableLayoutBox is used for creating a GUI like dockable IDE. It must be used with CollapsablePanel which give us a possibility to expand and collapse panels.
Current realization of the component supports either a vertical (Accordion way) positioning or a horizontal one. Size of the panel can be changed by dragging [...]]]></description>
			<content:encoded><![CDATA[<p>There is <a href="http://tearaway-tea.com/projects/goverla/resizable-layout/">an example</a>.</p>
<p><a href="http://tearaway-tea.com/projects/goverla/resizable-layout/"><img title="Resizable Layout" src="http://tearaway-tea.com/blog/wp-content/uploads/2008/04/resizable-layout.gif" alt="" width="300" height="300" /></a></p>
<p>The component <a href="http://code.google.com/p/goverla/source/browse/trunk/goverla/src/org/goverla/containers/ResizeableLayoutBox.as">ResizeableLayoutBox</a> is used for creating a GUI like dockable IDE. It must be used with <a href="http://code.google.com/p/goverla/source/browse/trunk/goverla/src/org/goverla/containers/CollapsablePanel.as">CollapsablePanel</a> which give us a possibility to expand and collapse panels.</p>
<p>Current realization of the component supports either a vertical (Accordion way) positioning or a horizontal one. Size of the panel can be changed by dragging it&#8217;s header by the mouse. While resizing such properties as <em>minWidth, maxWidth, minHeight, maxHeight</em> are considered.</p>
<p>Classes are located in <a href="http://code.google.com/p/goverla/">Go!Verla</a> Library.</p>
]]></content:encoded>
			<wfw:commentRss>http://tearaway-tea.com/blog/2008/03/resizeablelayoutbox-component/en/feed/en/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AIR Runtime Installation Problems</title>
		<link>http://tearaway-tea.com/blog/2007/12/air-runtime-installation-problems/en/</link>
		<comments>http://tearaway-tea.com/blog/2007/12/air-runtime-installation-problems/en/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 21:52:16 +0000</pubDate>
		<dc:creator>tearaway_Tea</dc:creator>
				<category><![CDATA[AIR]]></category>

		<guid isPermaLink="false">http://tearaway-tea.com/blog/?p=239</guid>
		<description><![CDATA[
Thanks to the article(Installing AIR Runtime Environment on Mac OS X) at last I have installed AIR Runtime Beta 3 for Mac OS X Leopard.
The problem was in &#8220;air_b3_mac_121207.dmg.bz2&#8243; file which I get from Adobe&#8217;s site. The file has incorrect extension *.bz2, it is automatically added by Safari but it&#8217;s useless. The file with this extension raise an [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>Thanks to the article(<a href="http://etcs.ru/blog/air/installing_air_runtime_environment_on_a_mac/">Installing AIR Runtime Environment on Mac OS X</a>) at last I have installed <em>AIR Runtime Beta 3</em> for Mac OS X Leopard.</p>
<p>The problem was in &#8220;air_b3_mac_121207.dmg.bz2&#8243; file which I get from Adobe&#8217;s site. The file has incorrect extension <em>*.bz2</em>, it is automatically added by Safari but it&#8217;s useless. The file with this extension raise an error in <em>Disk Utility</em>: &#8220;There are not mountable filesystem in package&#8221;. So, after file was renamed to &#8220;air_b3_mac_121207.dmg&#8221; the installation of AIR Runtime executes perfectly.</div>
]]></content:encoded>
			<wfw:commentRss>http://tearaway-tea.com/blog/2007/12/air-runtime-installation-problems/en/feed/en/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PatternRectangularBorder Component</title>
		<link>http://tearaway-tea.com/blog/2007/10/patternrectangularborder-component/en/</link>
		<comments>http://tearaway-tea.com/blog/2007/10/patternrectangularborder-component/en/#comments</comments>
		<pubDate>Wed, 17 Oct 2007 20:08:05 +0000</pubDate>
		<dc:creator>tearaway_Tea</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Go!Verla]]></category>

		<guid isPermaLink="false">http://tearaway-tea.com/blog/?p=249</guid>
		<description><![CDATA[There is an example.

The component PatternRectangularBorder can be used as background for such containers as Application, Canvas, HBox, VBox, Form etc. It based on RectangularBorder and BitmapData classes from Flex 2 SDK and works more natural then CSS image patterns in WSBackgroundPixelSkin component.
The component supports base Container&#8217;s style property background-image, also it extends that one by [...]]]></description>
			<content:encoded><![CDATA[<p>There is <a href="http://tearaway-tea.com/projects/goverla/pattern-background/">an example</a>.</p>
<p><a href="http://tearaway-tea.com/projects/goverla/pattern-background/"><img src="http://tearaway-tea.com/blog/wp-content/uploads/2007/10/flex-pattern-background.gif" alt="" /></a></p>
<p>The component <a href="http://code.google.com/p/goverla/source/browse/trunk/goverla/src/org/goverla/skins/PatternRectangularBorder.as">PatternRectangularBorder</a> can be used as background for such containers as Application, Canvas, HBox, VBox, Form etc. It based on RectangularBorder and BitmapData classes from <em>Flex 2 SDK</em> and works more natural then CSS image patterns in <a href="http://www.websector.de/blog/2007/07/06/pimp-your-flex-app-using-wsbackgroundpixelskin/">WSBackgroundPixelSkin</a> component.</p>
<p>The component supports base Container&#8217;s style property <em>background-image,</em> also it extends that one by a new style property <em>background-repeat</em> which is usually used in HTML CSS. Possible values are</p>
<ul>
<li>repeat</li>
<li>repeat-x</li>
<li>repeat-y</li>
</ul>
<p>I was unable to extend RectangularBorder because it&#8217;s totally private so copy-past way is a solution here for me.</p>
<p>The class is located in <a href="http://code.google.com/p/goverla/">Go!Verla</a> Library.</p>
<p>List of related links</p>
<ul>
<li><a href="http://www.websector.de/blog/2007/07/06/pimp-your-flex-app-using-wsbackgroundpixelskin/">Pimp your Flex app using WSBackgroundPixelSkin</a></li>
<li><a href="http://blog.creacog.co.uk/2007/06/11/tile-or-repeat-an-image-into-a-flex-application-background-ii/">tile or repeat an image into a flex application background II</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tearaway-tea.com/blog/2007/10/patternrectangularborder-component/en/feed/en/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
