<?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>Flashcommander &#187; AutoComplete</title>
	<atom:link href="http://flashcommander.org/blog/tag/autocomplete/feed" rel="self" type="application/rss+xml" />
	<link>http://flashcommander.org</link>
	<description>Flex, Flash, Air, Android, web development</description>
	<lastBuildDate>Thu, 10 May 2012 09:47:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Using Google Search Suggest with Flex 4 AutoComplete</title>
		<link>http://flashcommander.org/blog/google-search-suggest-flex-4-autocomplete</link>
		<comments>http://flashcommander.org/blog/google-search-suggest-flex-4-autocomplete#comments</comments>
		<pubDate>Sat, 06 Feb 2010 15:53:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[AutoComplete]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Google Search]]></category>
		<category><![CDATA[Google Suggest]]></category>
		<category><![CDATA[Spark]]></category>

		<guid isPermaLink="false">http://flashcommander.org/?p=385</guid>
		<description><![CDATA[This article demonstrates how to use Flex 4 AutoComplete with Google Search Suggest. First I use the Google Suggest API to show search suggestions in the AutoComplete as the user types in the input. Then I use the Google Search &#8230; <a href="http://flashcommander.org/blog/google-search-suggest-flex-4-autocomplete">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This article demonstrates how to use <a href="/blog/flex-4-autocomplete">Flex 4 AutoComplete</a> with Google Search Suggest.<br />
First I use the Google Suggest API to show search suggestions in the AutoComplete as the user types in the input. Then I use the Google Search API to perform a Google search with the selected phrase.<br />
<span id="more-385"></span><br />
Let&#8217;s see first how the finished application works &#8211; <strong>View source is enabled</strong>:</p>
<p><iframe class="flashcontent" src="/SparkAutoComplete/bin-release/googlesearch.html" width="100%" height="300" frameborder="0"></iframe></p>
<p>When user starts to type into search input we use an <code>HttpService</code> to get search suggestions from Google. </p>
<p>You can notice in the code sample below that the direct url is commented out. This is because the lack of a crossdomain.xml on Google&#8217;s servers prevent Flash from calling this url. So we call a php script instead in our domain that will load the data from Google and sends it back to Flash. </p>
<p>You can call the direct url in a browser to see the structure of the xml result. The result is an xml list that we feed into the dataprovider of the AutoComplete.</p>
<pre><span class="MXMLComponent_Tag">&lt;components:AutoComplete</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">autoC</span><span class="MXMLDefault_Text">" change="</span><span class="ActionScriptDefault_Text">onChange</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="MXMLDefault_Text">" labelFunction="</span><span class="MXMLString">labelFunction</span><span class="MXMLDefault_Text">"
    select="</span><span class="ActionScriptDefault_Text">search</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="MXMLDefault_Text">" enter="</span><span class="ActionScriptDefault_Text">search</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="MXMLDefault_Text">" width="</span><span class="MXMLString">200</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/&gt;</span>

<span class="MXMLComponent_Tag">&lt;s:HTTPService</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">googleSuggest</span><span class="MXMLDefault_Text">" result="</span><span class="ActionScriptDefault_Text">onResult</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">event</span><span class="ActionScriptBracket/Brace">)</span><span class="MXMLDefault_Text">"
    showBusyCursor="</span><span class="MXMLString">true</span><span class="MXMLDefault_Text">"
    resultFormat="</span><span class="MXMLString">e4x</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/&gt;</span>

<span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">onChange</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">{</span>
    <span class="ActionScriptvar">var</span><span class="ActionScriptDefault_Text"> s = autoC.text;</span>
    <span class="ActionScriptComment">//googleSuggest.url = "http://google.com/complete/search?output=toolbar&amp;q=" + s;</span>
    <span class="ActionScriptDefault_Text">googleSuggest</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">url</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptString">"../data/googlesuggest.php?q="</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">s</span>;
    <span class="ActionScriptDefault_Text">googleSuggest</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">send</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
<span class="ActionScriptBracket/Brace">}</span>

<span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">onResult</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">event</span>:<span class="ActionScriptDefault_Text">ResultEvent</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">{</span>
    <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">xmlList</span>:<span class="ActionScriptDefault_Text">XMLList</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">googleSuggest</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">lastResult</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">CompleteSuggestion</span> <span class="ActionScriptReserved">as</span> <span class="ActionScriptDefault_Text">XMLList</span>
    <span class="ActionScriptDefault_Text">autoC</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">dataProvider</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">XMLListCollection</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">xmlList</span><span class="ActionScriptBracket/Brace">)</span>;
<span class="ActionScriptBracket/Brace">}</span>
</pre>
<p>We use another HttpService to call Google Search &#8211; this time the result format is a JSON string.<br />
No proxy is needed because this service has a crossdomain.xml in place and accepts Flash calls.</p>
<p>The process is simple: when user presses enter or selects a suggestion in the AutoComplete we send the text to Google. </p>
<p>The result is then converted from JSON into Actionscript and displayed in a datagroup.</p>
<pre><span class="MXMLComponent_Tag">&lt;s:HTTPService</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">googleSearch</span><span class="MXMLDefault_Text">" result="</span><span class="ActionScriptDefault_Text">onSearchResult</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">event</span><span class="ActionScriptBracket/Brace">)</span><span class="MXMLDefault_Text">"
    showBusyCursor="</span><span class="MXMLString">true</span><span class="MXMLDefault_Text">"
    resultFormat="</span><span class="MXMLString">text</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/&gt;</span>

<span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">search</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">{</span>
    <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">s</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">autoC</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span>
    <span class="ActionScriptDefault_Text">googleSearch</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">url</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptString">'http://ajax.googleapis.com/ajax/services/search/web'</span>;
    <span class="ActionScriptDefault_Text">googleSearch</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">request</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">v</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptString">'1.0'</span>;
    <span class="ActionScriptDefault_Text">googleSearch</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">request</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">q</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">s</span>;
    <span class="ActionScriptDefault_Text">googleSearch</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">send</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
<span class="ActionScriptBracket/Brace">}</span>

<span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">onSearchResult</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">event</span>:<span class="ActionScriptDefault_Text">ResultEvent</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">{</span>
    <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">result</span>:<span class="ActionScriptDefault_Text">Object</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">JSON</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">decode</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">event</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">result</span> <span class="ActionScriptReserved">as</span> <span class="ActionScriptDefault_Text">String</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">responseData</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">results</span>;
    <span class="ActionScriptDefault_Text">searchResults</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">dataProvider</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">ArrayList</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">result</span> <span class="ActionScriptReserved">as</span> <span class="ActionScriptDefault_Text">Array</span><span class="ActionScriptBracket/Brace">)</span>;
<span class="ActionScriptBracket/Brace">}</span>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://flashcommander.org/blog/google-search-suggest-flex-4-autocomplete/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Flex 4 AutoComplete</title>
		<link>http://flashcommander.org/blog/flex-4-autocomplete</link>
		<comments>http://flashcommander.org/blog/flex-4-autocomplete#comments</comments>
		<pubDate>Thu, 21 Jan 2010 16:35:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[AutoComplete]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Gumbo]]></category>
		<category><![CDATA[Spark]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=36</guid>
		<description><![CDATA[As the by-product of an enterprise project I have built an AutoComplete component in Flex 4. Using the new Spark architecture component logic and appearance can be separated in a clean way. The component was updated for Flash Builder release &#8230; <a href="http://flashcommander.org/blog/flex-4-autocomplete">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As the by-product of an enterprise project I have built an AutoComplete component in Flex 4.<br />
Using the new Spark architecture component logic and appearance can be separated in a clean way.</p>
<p><strong>The component was updated for Flash Builder release SDK.</strong></p>
<p><span id="more-36"></span></p>
<p>Here is a demo app showing two ways of usage:</p>
<p><iframe class="flashcontent" src="/SparkAutoComplete/bin-release/main.html" width="100%" height="300" frameborder="0"></iframe></p>
<p><a href="/SparkAutoComplete/bin-release/srcview/index.html" target="blank">Click here to view source code and download project.</a></p>
<p>You can use the following <strong>properties </strong>to customize the component:</p>
<ul>
<li><code>minChars</code> &#8211; the number of caharcters typed by the user after which completion begins</li>
<li><code>prefixOnly</code> &#8211; if true, only items where the beginning matches the typed text will be offered for completion</li>
<li><code>forceOpen</code> &#8211; if true, list will pop-up when comp receives focus</li>
<li><code>requireSelection</code> &#8211; if true, first match is always selected and filled into the TextInput if user presses Tab</li>
<li><code>dataProvider</code> &#8211; allowed types are Array, ArrayCollection, XmlListCollection; can also be asigned dynamically, i.e. with the result of an asynchronous call</li>
<li><code>labelField, labelFunction</code> &#8211; standard Flex labelField and labelFunction</li>
<li><code>returnField</code> &#8211; set this if you want the component to fill a value different from labelField or labelFunciton</li>
<li><code>sortFunction</code> &#8211; function for sorting matching items, default is alphabetically ascending</li>
<li><code>text</code> &#8211; text of the input text</li>
<li><code>selectedItem</code> &#8211; selectedItem of list; read and write,set to null to reset selection</li>
<li><code>selectedIndex</code> &#8211; selectedIndex of list, read only</li>
</ul>
<p>The component dispatches 3 custom <strong>events</strong>:</p>
<ul>
<li><code>select</code> &#8211; type:CustomEvent; dispatched when user selects a list item by mouse or pressing Enter; listen to this to detect selection made by user</li>
<li><code>enter</code> &#8211; type:FlexEvent, enter event of the TextInput</li>
<li><code>change</code> &#8211; type:TextOperationEvent, change event of the TextInput</li>
</ul>
<p>The visual appearance is defined by the skin file <code>AutoCompleteSkin.as</code>. The skin consist of a <code>TextInput </code>and a <code>List </code>component placed in a <code>PopUpAnchor</code>.</p>
<pre>
    <span class="MXMLComponent_Tag">&lt;s:PopUpAnchor</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">popUp</span><span class="MXMLDefault_Text">"  displayPopUp="</span><span class="MXMLString">false</span><span class="MXMLDefault_Text">"
        top="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" bottom="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" left="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" right="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">"
        popUpWidthMatchesAnchorWidth="</span><span class="MXMLString">true</span><span class="MXMLDefault_Text">"
        popUpPosition="</span><span class="MXMLString">below</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">&gt;</span>

        <span class="MXMLComponent_Tag">&lt;s:Group</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">dropDown</span><span class="MXMLDefault_Text">" minHeight="</span><span class="MXMLString">22</span><span class="MXMLDefault_Text">" width="</span><span class="MXMLString">100%</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>

            <span class="MXMLComponent_Tag">&lt;s:List</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">list</span><span class="MXMLDefault_Text">" width="</span><span class="MXMLString">100%</span><span class="MXMLDefault_Text">" minWidth="</span><span class="MXMLString">22</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/&gt;</span>

        <span class="MXMLComponent_Tag">&lt;/s:Group&gt;</span>

    <span class="MXMLComponent_Tag">&lt;/s:PopUpAnchor&gt;</span>

    <span class="MXMLComponent_Tag">&lt;s:TextInput</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">inputTxt</span><span class="MXMLDefault_Text">" left="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" right="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" top="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" bottom="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/&gt;</span>
</pre>
<p>The logic in <code>AutoComplete</code> works like this: when the user types in text that matches with any items in the list we pop up the list showing these items.<br />
There is a little trick here &#8211; all keyboard events are dispatched by the TextInput but we need to be able to select items in the list with the cursor keys. What we do is to re-dispatch some keyboard events on the list:</p>
<pre>
    <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">onKeyDown</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">event</span>: <span class="ActionScriptDefault_Text">KeyboardEvent</span><span class="ActionScriptBracket/Brace">)</span> : <span class="ActionScriptReserved">void</span><span class="ActionScriptBracket/Brace">{</span>

        <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">popUp</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">displayPopUp</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">{</span>
            <span class="ActionScriptReserved">switch</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">event</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">keyCode</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">{</span>
                <span class="ActionScriptReserved">case</span> <span class="ActionScriptDefault_Text">Keyboard</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">UP</span>:
                <span class="ActionScriptReserved">case</span> <span class="ActionScriptDefault_Text">Keyboard</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">DOWN</span>:
                <span class="ActionScriptReserved">case</span> <span class="ActionScriptDefault_Text">Keyboard</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">END</span>:
                <span class="ActionScriptReserved">case</span> <span class="ActionScriptDefault_Text">Keyboard</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">HOME</span>:
                <span class="ActionScriptReserved">case</span> <span class="ActionScriptDefault_Text">Keyboard</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">PAGE_UP</span>:
                <span class="ActionScriptReserved">case</span> <span class="ActionScriptDefault_Text">Keyboard</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">PAGE_DOWN</span>:
                    <span class="ActionScriptDefault_Text">inputTxt</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">selectRange</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">text</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">length</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">text</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">length</span><span class="ActionScriptBracket/Brace">)</span>
                    <span class="ActionScriptDefault_Text">list</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">dispatchEvent</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">event</span><span class="ActionScriptBracket/Brace">)</span>
                    <span class="ActionScriptReserved">break</span>;
                <span class="ActionScriptReserved">case</span> <span class="ActionScriptDefault_Text">Keyboard</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ENTER</span>:
                    <span class="ActionScriptDefault_Text">acceptCompletion</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
                    <span class="ActionScriptReserved">break</span>;
                <span class="ActionScriptReserved">case</span> <span class="ActionScriptDefault_Text">Keyboard</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">TAB</span>:
                    <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">requireSelection</span><span class="ActionScriptBracket/Brace">)</span>
                        <span class="ActionScriptDefault_Text">acceptCompletion</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
                    <span class="ActionScriptReserved">else</span>
                        <span class="ActionScriptDefault_Text">popUp</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">displayPopUp</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">false</span>
                    <span class="ActionScriptReserved">break</span>;
                <span class="ActionScriptReserved">case</span> <span class="ActionScriptDefault_Text">Keyboard</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ESCAPE</span>:
                    <span class="ActionScriptDefault_Text">popUp</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">displayPopUp</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">false</span>
                    <span class="ActionScriptReserved">break</span>;
            <span class="ActionScriptBracket/Brace">}</span>
        <span class="ActionScriptBracket/Brace">}</span>
    <span class="ActionScriptBracket/Brace">}</span>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://flashcommander.org/blog/flex-4-autocomplete/feed</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
	</channel>
</rss>

