<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Ribbit Developer Platform</title>
	
	<link>http://developer.ribbit.com/blog</link>
	<description>The official blog for the Ribbit Developer Platform</description>
	<pubDate>Fri, 10 Jul 2009 19:16:52 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/ribbitdeveloper" type="application/rss+xml" /><feedburner:emailServiceId>ribbitdeveloper</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Ribbit News: HQ on the Move, Traveling with Geeks, Flexing Our Coding Chops</title>
		<link>http://feedproxy.google.com/~r/ribbitdeveloper/~3/rXVDkcjV7ms/</link>
		<comments>http://developer.ribbit.com/blog/ribbit-news-hq-on-the-move-traveling-with-geeks-flexing-our-coding-chops/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 16:36:07 +0000</pubDate>
		<dc:creator>Kristie Wells</dc:creator>
		
		<category><![CDATA[Newsletter]]></category>

		<category><![CDATA[address book]]></category>

		<category><![CDATA[bt.com]]></category>

		<category><![CDATA[ribbit]]></category>

		<category><![CDATA[ribbit developer]]></category>

		<category><![CDATA[ribbit news]]></category>

		<category><![CDATA[traveling geeks]]></category>

		<guid isPermaLink="false">http://developer.ribbit.com/blog/?p=527</guid>
		<description><![CDATA[Ribbit HQ on the Move
We have outgrown our digs (again), so the time has come to order a stack of packing boxes, wrap the foosball table in cellophane and throw the 1000+ stuffed frogs lying around the office into plastic bags to prep for our move.
We are staying in the same building, just moving down [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><strong>Ribbit HQ on the Move</strong><br />
We have outgrown our digs (again), so the time has come to order a stack of packing boxes, wrap the foosball table in cellophane and throw the 1000+ stuffed frogs lying around the office into plastic bags to prep for our move.</p>
<p>We are staying in the same building, just moving down one floor and gaining a ton of square footage that should hopefully last us a long while. Well, it will as long as we quit pouring water on the marketing people...</p>
<p><a title="We're Moving! by Ribbit Voice, on Flickr" href="http://www.flickr.com/photos/ribbitvoice/3674760727/"><img src="http://farm3.static.flickr.com/2489/3674760727_cbd083b57f.jpg" alt="We're Moving!" width="500" height="333" /></a></p>
<p>The new space required a bunch of build outs, so our office move is set in stages. Engineering and Support teams moved first, about two weeks ago, and the rest of us will be joining them this coming week. Hopefully, all construction will be done the week after, or the contractor may not be able to find his hammer(s) one morning...</p>
<p>-----</p>
<p><strong>Traveling Geeks Converge on BT </strong><br />
A group of <a href="http://travelinggeeks.com/">Silicon Valley geeks</a> headed to London this past week to participate in Innovation UK, and <a href="http://www.flickr.com/photos/70432213@N00/3696219798/">stopped in at BT</a> to see what our parent company has been up to.</p>
<p>Ted Griggs, Crick Waters and Don Thorson from Ribbit joined BT's <span class="fn">JP Rangaswami to host a dinner and <a href="http://travelinggeeks.com/united-kingdom/ian-livingston-ceo-british-telecom/">several events</a> with the geeks where they shared BT's mobile and broadband initiatives as well as the Ribbit story and what it means to the world of telephony.</span></p>
<p><span class="fn">Waiting for Ted, Crick and Don's return to get the full debrief, but it sounds like everyone had a good time and they gave the geeks some good bits to chew on.<br />
</span></p>
<p><span class="fn">-----<br />
</span></p>
<p><strong>Flex Examples: Adding Contacts and List/Search Contacts</strong><br />
<a href="http://twitter.com/chuckstar">Chuck</a> continues his Tips and Tricks series and kicked out two great Flex examples this week, focusing on the Ribbit address book:</p>
<ul>
<li><a href="http://developer.ribbit.com/blog/flex-example-adding-contacts-to-your-ribbit-address-book/">Adding contact to your Ribbit Address Book</a></li>
<li><a href="http://developer.ribbit.com/blog/flex-example-listing-and-searching-ribbit-contacts-with-mxdatagrid/">Listing and Searching Ribbit Contacts with mxDataGrid</a></li>
</ul>


<p>No related posts.</p><img src="http://feeds.feedburner.com/~r/ribbitdeveloper/~4/rXVDkcjV7ms" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://developer.ribbit.com/blog/ribbit-news-hq-on-the-move-traveling-with-geeks-flexing-our-coding-chops/feed/</wfw:commentRss>
		<feedburner:origLink>http://developer.ribbit.com/blog/ribbit-news-hq-on-the-move-traveling-with-geeks-flexing-our-coding-chops/</feedburner:origLink></item>
		<item>
		<title>Flex Example: Listing and Searching Ribbit contacts with mx:DataGrid</title>
		<link>http://feedproxy.google.com/~r/ribbitdeveloper/~3/2SzScSQXL0c/</link>
		<comments>http://developer.ribbit.com/blog/flex-example-listing-and-searching-ribbit-contacts-with-mxdatagrid/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 15:12:50 +0000</pubDate>
		<dc:creator>Charles Freedman</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Flex SDK]]></category>

		<category><![CDATA[Tips & Tricks]]></category>

		<guid isPermaLink="false">http://developer.ribbit.com/blog/?p=522</guid>
		<description><![CDATA[
Welcome to our 4th Tips &#038; Tricks post. With each post, we'll take an example of a common use of Ribbit and explore how we can make the code more efficient, stylish, and a better experience for the user.
Situation: Now that we've added contacts, let's get those contacts loaded up in a DataGrid for you [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><img src="http://developer.ribbit.com/blog/wp-content/uploads/2009/06/154317-300x225.jpg" alt="DO try this at home!" title="Crash Coder" width="190" height="143" class="size-medium wp-image-455" /></p>
<p><em><strong>Welcome to our 4th Tips & Tricks post. With each post, we'll take an example of a common use of Ribbit and explore how we can make the code more efficient, stylish, and a better experience for the user.</strong></em></p>
<p><strong>Situation:</strong> Now that we've added contacts, let's get those contacts loaded up in a DataGrid for you and your users to view. We'll also add a search field so you can rifle through those contacts as if they were sitting in a rolodex on your desk!</p>
<p><strong>Requirements:</strong> You'll need a <a href="http://developer.ribbit.com/register">Ribbit username/password</a> and a version of <a href="http://www.adobe.com/products/flex/?promoid=BPDEQ">Flexbuilder</a>.</p>
<style>.blogbody pre {width:580px !important}</style>
<p><strong>The Code:</strong></p>
<p>(1) Start with the <a href="http://developer.ribbit.com/blog/flex-sample-loginlogout-of-ribbit-with-one-mxbutton/">full Authentication code sample</a>, and add the following block just below where you import classes:</p>
<pre class="actionscript">&nbsp;
<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">ribbit</span>.<span style="color: #006600;">api</span>.<span style="color: #006600;">interfaces</span>.<span style="color: #006600;">IContactManager</span>;
<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">ribbit</span>.<span style="color: #006600;">api</span>.<span style="color: #006600;">interfaces</span>.<span style="color: #006600;">IContactList</span>;
<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">ribbit</span>.<span style="color: #006600;">api</span>.<span style="color: #006600;">events</span>.<span style="color: #006600;">ContactEventKind</span>;
<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">ribbit</span>.<span style="color: #006600;">api</span>.<span style="color: #006600;">objects</span>.<span style="color: #006600;">ContactField</span>;
<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">ribbit</span>.<span style="color: #006600;">api</span>.<span style="color: #006600;">events</span>.<span style="color: #006600;">ContactEvent</span>;
<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">ribbit</span>.<span style="color: #006600;">api</span>.<span style="color: #006600;">interfaces</span>.<span style="color: #006600;">IContact</span>;
<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">collections</span>.<span style="color: #006600;">ArrayCollection</span>;
&nbsp;
<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">events</span>.<span style="color: #006600;">ListEvent</span>;
&nbsp;</pre>
<p>(2) Now add the following code just after where you declare variables:</p>
<pre class="actionscript">&nbsp;
<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span>
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> loggedIn:<span style="color: #0066CC;">Boolean</span>;
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> contactMgr:IContactManager;
<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span>
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> contactList:ArrayCollection;
<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span>
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> filterContactList:ArrayCollection;
<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span>
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> selectedContactFieldList:ArrayCollection;
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> contact:IContact;
&nbsp;</pre>
<p>(3) Next, replace the init() function, with this revised code which instantiates the contact manager:</p>
<pre class="actionscript">&nbsp;
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	request = <span style="color: #000000; font-weight: bold;">new</span> RibbitServices<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	authMgr = request.<span style="color: #006600;">authenticationManager</span>;
	authMgr.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>AuthenticationEvent.<span style="color: #006600;">LOGGED_IN</span>, onLoggedIn<span style="color: #66cc66;">&#41;</span>;
	authMgr.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>AuthenticationEvent.<span style="color: #006600;">LOGGED_OUT</span>, onLoggedOut<span style="color: #66cc66;">&#41;</span>;	
&nbsp;
	contactMgr = request.<span style="color: #006600;">contactManager</span>;
	contactMgr.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>ContactEvent.<span style="color: #006600;">LIST_CHANGE</span>, handleListChange<span style="color: #66cc66;">&#41;</span>;
&nbsp;
	contactList = <span style="color: #000000; font-weight: bold;">new</span> ArrayCollection<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	filterContactList = <span style="color: #000000; font-weight: bold;">new</span> ArrayCollection<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;</pre>
<p>(4) Next, add these functions at the bottom of your mx:Script block, after the onLoggedOut eventhandler:</p>
<pre class="actionscript">&nbsp;
<span style="color: #808080; font-style: italic;">//Populates list with loaded contacts</span>
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> handleListChange<span style="color: #66cc66;">&#40;</span>event:ContactEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">switch</span><span style="color: #66cc66;">&#40;</span>event.<span style="color: #006600;">kind</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">//contact list updated</span>
		<span style="color: #b1b100;">case</span> ContactEventKind.<span style="color: #0066CC;">LOADED</span>:
		<span style="color: #b1b100;">case</span> ContactEventKind.<span style="color: #006600;">REFRESH</span>:
		<span style="color: #b1b100;">case</span> ContactEventKind.<span style="color: #006600;">UPDATE</span>:
		<span style="color: #66cc66;">&#123;</span>
			contactList = <span style="color: #000000; font-weight: bold;">new</span> ArrayCollection<span style="color: #66cc66;">&#40;</span>contactMgr.<span style="color: #006600;">contacts</span>.<span style="color: #006600;">toArray</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #808080; font-style: italic;">//... clear filter collection</span>
			filterContactList = <span style="color: #000000; font-weight: bold;">new</span> ArrayCollection<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #b1b100;">break</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>		
&nbsp;
<span style="color: #808080; font-style: italic;">//Returns phone number string inside contact list</span>
protected <span style="color: #000000; font-weight: bold;">function</span> getPhoneNumber<span style="color: #66cc66;">&#40;</span>item:<span style="color: #0066CC;">Object</span>, column:DataGridColumn<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">String</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">var</span> contact:IContact = item as IContact;
	<span style="color: #000000; font-weight: bold;">var</span> phoneNumber:ContactField = contact.<span style="color: #006600;">getField</span><span style="color: #66cc66;">&#40;</span>ContactField.<span style="color: #006600;">FIELD_OTHERPHONE</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #b1b100;">return</span> phoneNumber.<span style="color: #0066CC;">toString</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">//Allows searching of contacts</span>
protected <span style="color: #000000; font-weight: bold;">function</span> search<span style="color: #66cc66;">&#40;</span>keyword:<span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>keyword == <span style="color: #ff0000;">&quot;&quot;</span> || keyword == <span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		contactGrid.<span style="color: #006600;">dataProvider</span> = contactList;
		<span style="color: #b1b100;">return</span>;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">var</span> results:IContactList = contactMgr.<span style="color: #006600;">search</span><span style="color: #66cc66;">&#40;</span>keyword<span style="color: #66cc66;">&#41;</span>;
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>results != <span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
    	filterContactList = <span style="color: #000000; font-weight: bold;">new</span> ArrayCollection<span style="color: #66cc66;">&#40;</span>results.<span style="color: #006600;">toArray</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
    	contactGrid.<span style="color: #006600;">dataProvider</span> = 	filterContactList;
    <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;</pre>
<p>(5) Finally, add this block of MXML layout code just above the closing </mx:Application> tag.</p>
<pre class="actionscript">&nbsp;
&lt;mx:Panel id=<span style="color: #ff0000;">&quot;contactPanel&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;500&quot;</span> y=<span style="color: #ff0000;">&quot;150&quot;</span> title=<span style="color: #ff0000;">&quot;Add Contact&quot;</span>&gt;
	&lt;mx:Form id=<span style="color: #ff0000;">&quot;searchForm&quot;</span>&gt;
		&lt;mx:FormItem direction=<span style="color: #ff0000;">&quot;horizontal&quot;</span>&gt;
			&lt;mx:Label <span style="color: #0066CC;">text</span>=<span style="color: #ff0000;">&quot;Filter: &quot;</span> id=<span style="color: #ff0000;">&quot;filterLabel&quot;</span>/&gt;
			&lt;mx:TextInput id=<span style="color: #ff0000;">&quot;typeForwardSearch&quot;</span> <span style="color: #0066CC;">text</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;{contactGrid.width - filterLabel.width - 75}&quot;</span>/&gt;
			&lt;mx:<span style="color: #0066CC;">Button</span> id=<span style="color: #ff0000;">&quot;btn_search&quot;</span> label=<span style="color: #ff0000;">&quot;Search&quot;</span> click=<span style="color: #ff0000;">&quot;search(typeForwardSearch.text)&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;75&quot;</span>/&gt;
		&lt;/mx:FormItem&gt;
		&lt;mx:FormItem label=<span style="color: #ff0000;">&quot;&quot;</span>&gt;
		&lt;mx:DataGrid id=<span style="color: #ff0000;">&quot;contactGrid&quot;</span> dataProvider=<span style="color: #ff0000;">&quot;{contactList}&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;325&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;245&quot;</span>&gt;
			&lt;mx:columns&gt;
				&lt;mx:DataGridColumn dataField=<span style="color: #ff0000;">&quot;id&quot;</span> headerText=<span style="color: #ff0000;">&quot;ID&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;50&quot;</span> resizable=<span style="color: #ff0000;">&quot;true&quot;</span>/&gt;
				&lt;mx:DataGridColumn dataField=<span style="color: #ff0000;">&quot;firstName&quot;</span> headerText=<span style="color: #ff0000;">&quot;First Name&quot;</span> resizable=<span style="color: #ff0000;">&quot;true&quot;</span>/&gt;
				&lt;mx:DataGridColumn dataField=<span style="color: #ff0000;">&quot;lastName&quot;</span> headerText=<span style="color: #ff0000;">&quot;Last Name&quot;</span>  resizable=<span style="color: #ff0000;">&quot;true&quot;</span>/&gt;
				&lt;mx:DataGridColumn headerText=<span style="color: #ff0000;">&quot;Phone Number&quot;</span> labelFunction=<span style="color: #ff0000;">&quot;getPhoneNumber&quot;</span> resizable=<span style="color: #ff0000;">&quot;true&quot;</span>/&gt;
			&lt;/mx:columns&gt;
		&lt;/mx:DataGrid&gt;
		&lt;/mx:FormItem&gt;
		&lt;mx:FormItem label=<span style="color: #ff0000;">&quot;&quot;</span> horizontalAlign=<span style="color: #ff0000;">&quot;center&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;100%&quot;</span>&gt;
			&lt;mx:<span style="color: #0066CC;">Button</span> id=<span style="color: #ff0000;">&quot;refreshContactList&quot;</span> click=<span style="color: #ff0000;">&quot;contactMgr.loadContactList();&quot;</span> label=<span style="color: #ff0000;">&quot;Refresh Contact List&quot;</span> /&gt;
		&lt;/mx:FormItem&gt;
	&lt;/mx:Form&gt;
&lt;/mx:Panel&gt;
&nbsp;</pre>
<p><strong>Summary:</strong> Listing and searching contacts kind of a fun exercise. It opens a lot of possibilities for your application, like displaying contact/user photos and associating each contact with other fields of data in your app. </p>
<p>A few things to note in step (4). We're using the same <strong>handleListChange </strong>eventhandler as in the Add Contact example. This time, the method will refresh our list arrays, which will also refresh the DataGrid displaying the contacts. Also, to reach into the contact object and get the contact's phone number, we're using <strong>getPhoneNumber </strong>as a labelfunction. Note how we cast the DataGrid row object as an <strong>IContact </strong>and then fish out the <strong>FIELD_OTHERPHONE</strong> property.</p>
<p><strong>Next Post:</strong> Now that we're listing contacts, we have a few things left. Updating and deleting contacts are easy tasks and we'll explore those next!</p>


<p>No related posts.</p><img src="http://feeds.feedburner.com/~r/ribbitdeveloper/~4/2SzScSQXL0c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://developer.ribbit.com/blog/flex-example-listing-and-searching-ribbit-contacts-with-mxdatagrid/feed/</wfw:commentRss>
		<feedburner:origLink>http://developer.ribbit.com/blog/flex-example-listing-and-searching-ribbit-contacts-with-mxdatagrid/</feedburner:origLink></item>
		<item>
		<title>Flex Example: Adding contacts to your Ribbit address book</title>
		<link>http://feedproxy.google.com/~r/ribbitdeveloper/~3/Fc-yDVNxZNU/</link>
		<comments>http://developer.ribbit.com/blog/flex-example-adding-contacts-to-your-ribbit-address-book/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 14:41:27 +0000</pubDate>
		<dc:creator>Charles Freedman</dc:creator>
		
		<category><![CDATA[Flex SDK]]></category>

		<category><![CDATA[Tips & Tricks]]></category>

		<guid isPermaLink="false">http://developer.ribbit.com/blog/?p=517</guid>
		<description><![CDATA[
Welcome to our 3rd Tips &#038; Tricks post. With each post, we'll take an example of a common use of Ribbit and explore how we can make the code more efficient, stylish, and a better experience for the user.
Situation: Address book management is a cool and often unsung feature of the Ribbit Flex SDK SWC. [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><img src="http://developer.ribbit.com/blog/wp-content/uploads/2009/06/154317-300x225.jpg" alt="DO try this at home!" title="Crash Coder" width="190" height="143" class="size-medium wp-image-455" /></p>
<p><em><strong>Welcome to our 3rd Tips & Tricks post. With each post, we'll take an example of a common use of Ribbit and explore how we can make the code more efficient, stylish, and a better experience for the user.</strong></em></p>
<p><strong>Situation:</strong> Address book management is a cool and often unsung feature of the <a href="http://developer.ribbit.com/devcenter/flex">Ribbit Flex SDK SWC</a>. This feature allows your users to maintain a collection of contacts/friends/buddies inside any Flash Platform or AIR application. It pairs nicely with Ribbit since you can keep phone numbers, associated with contact name, photo and address, on Ribbit's remote service.</p>
<p><strong>Requirements:</strong> You'll need a <a href="http://developer.ribbit.com/register">Ribbit username/password</a> and a version of <a href="http://www.adobe.com/products/flex/?promoid=BPDEQ">Flexbuilder</a>.</p>
<style>.blogbody pre {width:580px !important}</style>
<p><strong>The Code:</strong></p>
<p>(1) Start with the <a href="http://developer.ribbit.com/blog/flex-sample-loginlogout-of-ribbit-with-one-mxbutton/">full Authentication code sample</a>, and add the following block just below where you import classes:</p>
<pre class="actionscript">&nbsp;
<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">ribbit</span>.<span style="color: #006600;">api</span>.<span style="color: #006600;">interfaces</span>.<span style="color: #006600;">IContactManager</span>;
<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">ribbit</span>.<span style="color: #006600;">api</span>.<span style="color: #006600;">events</span>.<span style="color: #006600;">ContactEventKind</span>;
<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">ribbit</span>.<span style="color: #006600;">api</span>.<span style="color: #006600;">objects</span>.<span style="color: #006600;">ContactField</span>;
<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">ribbit</span>.<span style="color: #006600;">api</span>.<span style="color: #006600;">events</span>.<span style="color: #006600;">ContactEvent</span>;
<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">ribbit</span>.<span style="color: #006600;">api</span>.<span style="color: #006600;">interfaces</span>.<span style="color: #006600;">IContact</span>;
&nbsp;
<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">controls</span>.<span style="color: #006600;">Alert</span>;
&nbsp;</pre>
<p>(2) Now add the following code just after where you declare variables:</p>
<pre class="actionscript">&nbsp;
<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span>
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> loggedIn:<span style="color: #0066CC;">Boolean</span>;
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> contactMgr:IContactManager;
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> newContact:IContact;
&nbsp;</pre>
<p>(3) Next, replace the init() function, with this revised code which instantiates the contact manager:</p>
<pre class="actionscript">&nbsp;
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	request = <span style="color: #000000; font-weight: bold;">new</span> RibbitServices<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	authMgr = request.<span style="color: #006600;">authenticationManager</span>;
	authMgr.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>AuthenticationEvent.<span style="color: #006600;">LOGGED_IN</span>, onLoggedIn<span style="color: #66cc66;">&#41;</span>;
	authMgr.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>AuthenticationEvent.<span style="color: #006600;">LOGGED_OUT</span>, onLoggedOut<span style="color: #66cc66;">&#41;</span>;	
&nbsp;
	contactMgr = request.<span style="color: #006600;">contactManager</span>;
	contactMgr.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>ContactEvent.<span style="color: #006600;">LIST_CHANGE</span>, handleListChange<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;</pre>
<p>(4) Next, add these functions at the bottom of your mx:Script block:</p>
<pre class="actionscript">&nbsp;
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> contactAdd<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	newContact = contactMgr.<span style="color: #006600;">getContactObject</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	newContact.<span style="color: #006600;">firstName</span> = firstName.<span style="color: #0066CC;">text</span>;
	newContact.<span style="color: #006600;">lastName</span> = lastName.<span style="color: #0066CC;">text</span>;
	newContact.<span style="color: #006600;">emailAddress</span> = email.<span style="color: #0066CC;">text</span>;
        newContact.<span style="color: #006600;">jobTitle</span> = jobTitle.<span style="color: #0066CC;">text</span>;
	newContact.<span style="color: #006600;">companyName</span> = companyName.<span style="color: #0066CC;">text</span>;
        newContact.<span style="color: #006600;">setField</span><span style="color: #66cc66;">&#40;</span>ContactField.<span style="color: #006600;">FIELD_PERSONALMOBILEPHONE</span>, phoneNumber.<span style="color: #0066CC;">text</span><span style="color: #66cc66;">&#41;</span>;
	contactMgr.<span style="color: #006600;">addContact</span><span style="color: #66cc66;">&#40;</span>newContact<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> handleListChange<span style="color: #66cc66;">&#40;</span>event:ContactEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">switch</span><span style="color: #66cc66;">&#40;</span>event.<span style="color: #006600;">kind</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">//contact added to list</span>
		<span style="color: #b1b100;">case</span> ContactEventKind.<span style="color: #0066CC;">ADD</span>:
		<span style="color: #66cc66;">&#123;</span>
			Alert.<span style="color: #0066CC;">show</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Your new contact was added!&quot;</span>, <span style="color: #ff0000;">&quot;Contact Added&quot;</span>, Alert.<span style="color: #006600;">OK</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #b1b100;">break</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;</pre>
<p>(5) Finally, add this block of MXML layout code just above the closing </mx:Application> tag.</p>
<pre class="actionscript">&nbsp;
&lt;mx:Panel id=<span style="color: #ff0000;">&quot;contactPanel&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;500&quot;</span> y=<span style="color: #ff0000;">&quot;150&quot;</span> title=<span style="color: #ff0000;">&quot;Add Contact&quot;</span>&gt;
	&lt;mx:Form id=<span style="color: #ff0000;">&quot;contactForm&quot;</span> borderThickness=<span style="color: #ff0000;">&quot;3&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;100%&quot;</span>&gt;
		&lt;mx:FormItem label=<span style="color: #ff0000;">&quot;First Name: &quot;</span>&gt;
			&lt;mx:TextInput id=<span style="color: #ff0000;">&quot;firstName&quot;</span> /&gt;
		&lt;/mx:FormItem&gt;
		&lt;mx:FormItem label=<span style="color: #ff0000;">&quot;Last Name: &quot;</span>&gt;
			&lt;mx:TextInput id=<span style="color: #ff0000;">&quot;lastName&quot;</span> /&gt;
		&lt;/mx:FormItem&gt;
		&lt;mx:FormItem label=<span style="color: #ff0000;">&quot;Email: &quot;</span>&gt;
			&lt;mx:TextInput id=<span style="color: #ff0000;">&quot;email&quot;</span> /&gt;
		&lt;/mx:FormItem&gt;
		&lt;mx:FormItem label=<span style="color: #ff0000;">&quot;Phone: &quot;</span>&gt;
			 &lt;mx:TextInput id=<span style="color: #ff0000;">&quot;phoneNumber&quot;</span> /&gt;
		&lt;/mx:FormItem&gt;
		&lt;mx:FormItem label=<span style="color: #ff0000;">&quot;Job Title: &quot;</span>&gt;
			&lt;mx:TextInput id=<span style="color: #ff0000;">&quot;jobTitle&quot;</span> /&gt;
		&lt;/mx:FormItem&gt;
		&lt;mx:FormItem label=<span style="color: #ff0000;">&quot;Company : &quot;</span>&gt;
			&lt;mx:TextInput id=<span style="color: #ff0000;">&quot;companyName&quot;</span> /&gt;
		&lt;/mx:FormItem&gt;
		&lt;mx:FormItem label=<span style="color: #ff0000;">&quot;&quot;</span> direction=<span style="color: #ff0000;">&quot;horizontal&quot;</span> horizontalAlign=<span style="color: #ff0000;">&quot;center&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;100%&quot;</span>&gt;
			&lt;mx:<span style="color: #0066CC;">Button</span> id=<span style="color: #ff0000;">&quot;btn_addContact&quot;</span> label=<span style="color: #ff0000;">&quot;Add&quot;</span> click=<span style="color: #ff0000;">&quot;contactAdd()&quot;</span> <span style="color: #0066CC;">enabled</span>=<span style="color: #ff0000;">&quot;{loggedIn}&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;75&quot;</span>/&gt;
		&lt;/mx:FormItem&gt;
	&lt;/mx:Form&gt;
&lt;/mx:Panel&gt;
&nbsp;</pre>
<p><strong>Summary:</strong> As you can see, we can add contacts through our app very easily. There are many additional fields available to store relative contact information. A few things to note in step (4). To add a contact, we're creating a new IContact object and populating it with values from our form. Then, to confirm the contact has been added, we handle the ContactEvent.LIST_CHANGE event with handleListChange. Once we get this confirmation, we display an mx.controls.Alert with a confirmation message.</p>
<p><strong>Next Post:</strong> Now that we've added a contact, I'll explore the code to list, update and search your address book as well.</p>


<p>No related posts.</p><img src="http://feeds.feedburner.com/~r/ribbitdeveloper/~4/Fc-yDVNxZNU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://developer.ribbit.com/blog/flex-example-adding-contacts-to-your-ribbit-address-book/feed/</wfw:commentRss>
		<feedburner:origLink>http://developer.ribbit.com/blog/flex-example-adding-contacts-to-your-ribbit-address-book/</feedburner:origLink></item>
		<item>
		<title>Ribbit News: Ribbit In The Wild, Getting Microphone, Flashing Tips and Tricks, Happy 4thof July!</title>
		<link>http://feedproxy.google.com/~r/ribbitdeveloper/~3/Jkp-n74NVac/</link>
		<comments>http://developer.ribbit.com/blog/ribbit-news-ribbit-in-the-wild-getting-microphone-flashing-tips-and-tricks-happy-4thof-july/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 14:18:17 +0000</pubDate>
		<dc:creator>Kristie Wells</dc:creator>
		
		<category><![CDATA[Newsletter]]></category>

		<category><![CDATA[case studies]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[flash microphone]]></category>

		<category><![CDATA[ribbit]]></category>

		<category><![CDATA[ribbit newsletter]]></category>

		<category><![CDATA[rocketvox]]></category>

		<category><![CDATA[simplephone]]></category>

		<category><![CDATA[tips and tricks]]></category>

		<guid isPermaLink="false">http://developer.ribbit.com/blog/?p=503</guid>
		<description><![CDATA[Ribbit in the Wild: SimplePhone and Rocketvox Case Studies
We recently caught up with Joe Farrar at SimplePhone and Rick Peters from Rocket Technology Labs to see what they have doing with the Ribbit API, and what their plans are for the future:

SimplePhone
SimplePhone is a desktop-based Adobe Air phone application integrated with Ribbit that allows callers [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><strong>Ribbit in the Wild: SimplePhone and Rocketvox Case Studies<br />
</strong>We recently caught up with Joe Farrar at SimplePhone and Rick Peters from Rocket Technology Labs to see what they have doing with the Ribbit API, and what their plans are for the future:</p>
<ul>
<li><strong><em>SimplePhone</em></strong><br />
SimplePhone is a desktop-based Adobe Air phone application integrated with Ribbit that allows callers to place voice calls using a computer microphone, SimplePhone integrates with Broadsoft’s globally-recognized VOIP platform for carriers, and will be offered as an add-on service to SimpleSignal customers nationwide this summer.</li>
<li><strong><em>Rocketvox</em></strong><br />
Rocketvox used the Ribbit API to create a universal inbox that collects all your voicemail, email, text, fax, and instant messages in a single place will help people more efficiently manage their digital lives.</li>
</ul>
<p>To dig a little deeper into their stories, please visit the <a href="http://marketing.ribbit.com/mediakit/">Ribbit website</a> (just scroll down to the Developer Applications section) and read away.</p>
<p>Have you been working on something you would like to share with the Ribbit community? We would love to hear it. Shoot an email to kristie [at] ribbit [dot] com, give us the 411 and we'll get it out there.</p>
<p>-----</p>
<p><strong>The Flash Microphone Wants to Record. It Does, Really. </strong><br />
<a href="http://twitter.com/chuckstar">Chuck Freedman</a> and <a href="http://twitter.com/brendanlee">Brendan Lee</a> launched the <a href="http://www.getmicrophone.com/">Get Microphone website</a> with a goal to "get Microphone" data access in Flash and draw attention to the creative things you can do with voice.</p>
<p>During <a onclick="javascript:pageTracker._trackPageview('/outbound/article/www.fitc.ca');" href="http://www.fitc.ca/events/about/?event=79">FITC Toronto 2009</a>, Chuck shared <a href="http://www.getmicrophone.com/?p=69">two great examples</a> in using  the Flash Microphone - the first is using <a href="http://www.youtube.com/watch?v=HekZjW7QZWI&amp;feature=player_embedded">Merapi</a>, to capture Microphone, store it in a local file, and play it back. He also showcased <a href="http://www.youtube.com/watch?v=zBbImCNEOLA&amp;feature=player_embedded">Red5</a> where you can stream Microphone data to a remote server, record the stream and play it back. Awesomesauce.</p>
<p>-----</p>
<p><strong>Tips and Tricks</strong><br />
Chuck unleashes his latest <a href="http://developer.ribbit.com/blog/flash-example-ribbit-auth-with-simple-actionscript-3/">Flash example</a> as he tinkers away on Ribbit Auth using simple Actionscript 3.  TextInput and Button controls in da hizzy.</p>
<p>-----</p>
<p><strong>Happy 50th, Happy 4th.</strong><br />
Hard to believe...but this issue of the Ribbit News Splash is <strong>#50</strong>. Wow. We hope you have found some good bits over the past issues, and looking forward to expanding it a lot more as we go towards #100. We plan to include a lot more code, and more stories of people doing cool things. Shoot, we might even throw in a contest or two! The world is our oyster baby!</p>
<p>We also release this issue as we head into the 4th of July holiday here in the United States, and would like to wish you all a wonderful weekend surrounded by friends and family, good eats and fireworks to!</p>


<p>No related posts.</p><img src="http://feeds.feedburner.com/~r/ribbitdeveloper/~4/Jkp-n74NVac" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://developer.ribbit.com/blog/ribbit-news-ribbit-in-the-wild-getting-microphone-flashing-tips-and-tricks-happy-4thof-july/feed/</wfw:commentRss>
		<feedburner:origLink>http://developer.ribbit.com/blog/ribbit-news-ribbit-in-the-wild-getting-microphone-flashing-tips-and-tricks-happy-4thof-july/</feedburner:origLink></item>
		<item>
		<title>Flash Example: Ribbit Auth with simple Actionscript 3</title>
		<link>http://feedproxy.google.com/~r/ribbitdeveloper/~3/TOjWuH2H2IQ/</link>
		<comments>http://developer.ribbit.com/blog/flash-example-ribbit-auth-with-simple-actionscript-3/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 20:32:32 +0000</pubDate>
		<dc:creator>Charles Freedman</dc:creator>
		
		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flash Toolkit]]></category>

		<category><![CDATA[Tips & Tricks]]></category>

		<guid isPermaLink="false">http://developer.ribbit.com/blog/?p=499</guid>
		<description><![CDATA[
Welcome to our 2nd Tips &#038; Tricks post. With each post, we'll take an example of a common use of Ribbit and explore how we can make the code more efficient, stylish, and a better experience for the user.
Situation: Similar to the last post, we'll take a look at the simple task of logging into [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><img src="http://developer.ribbit.com/blog/wp-content/uploads/2009/06/154317-300x225.jpg" alt="DO try this at home!" title="Crash Coder" width="190" height="143" class="size-medium wp-image-455" /></p>
<p><em><strong>Welcome to our 2nd Tips &#038; Tricks post. With each post, we'll take an example of a common use of Ribbit and explore how we can make the code more efficient, stylish, and a better experience for the user.</strong></em></p>
<p><strong>Situation:</strong> Similar to the last post, we'll take a look at the simple task of logging into the Ribbit service. This time, we'll use Flash Professional via the <a href="http://developer.ribbit.com/devcenter/flash">Ribbit Flash Toolkit</a>. This example will achieve login, once again, using one button that will conditionally toggle between login/logout functionality based on your loggedIn status. This time, instead of leveraging the Flex framework and being dependent on MXML and components, we'll use more Actionscript 3 and a few Flash UI Controls.</p>
<p><strong>Requirements:</strong> You'll need a <a href="http://developer.ribbit.com/register">Ribbit username/password</a> and a CS3 or greater version of <a href="http://www.adobe.com/products/flash/?promoid=BPDEQ">Flash Professional</a>.</p>
<style>.blogbody pre {width:580px !important}</style>
<p><strong>The Code:</strong></p>
<pre class="actionscript">&nbsp;
package
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #808080; font-style: italic;">//import Ribbit API classes from Library (SWC) and Flash</span>
	<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">ribbit</span>.<span style="color: #006600;">api</span>.<span style="color: #006600;">RibbitServices</span>;
	<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">ribbit</span>.<span style="color: #006600;">api</span>.<span style="color: #006600;">interfaces</span>.<span style="color: #006600;">IAuthenticationManager</span>;
	<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">ribbit</span>.<span style="color: #006600;">api</span>.<span style="color: #006600;">events</span>.<span style="color: #006600;">AuthenticationEvent</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">MouseEvent</span>;
	<span style="color: #0066CC;">import</span> fl.<span style="color: #006600;">controls</span>.<span style="color: #006600;">Label</span>;
	<span style="color: #0066CC;">import</span> fl.<span style="color: #006600;">controls</span>.<span style="color: #0066CC;">Button</span>;
	<span style="color: #0066CC;">import</span> fl.<span style="color: #006600;">controls</span>.<span style="color: #006600;">TextInput</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> RibbitAuth <span style="color: #0066CC;">extends</span> Sprite
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">//declare vars</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> request:RibbitServices;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> authMgr:IAuthenticationManager;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> appID:<span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">&quot;&quot;</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> devID:<span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">&quot;&quot;</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> loggedIn:<span style="color: #0066CC;">Boolean</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _username:TextInput;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _password:TextInput;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _loginButton:<span style="color: #0066CC;">Button</span>;		
&nbsp;
		<span style="color: #808080; font-style: italic;">//class constructor, add components to layout</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> RibbitAuth<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			_username = <span style="color: #000000; font-weight: bold;">new</span> TextInput<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_username.<span style="color: #0066CC;">text</span> = <span style="color: #ff0000;">&quot;username&quot;</span>;
			addChild<span style="color: #66cc66;">&#40;</span>_username<span style="color: #66cc66;">&#41;</span>;
			_password = <span style="color: #000000; font-weight: bold;">new</span> TextInput<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_password.<span style="color: #0066CC;">text</span> = <span style="color: #ff0000;">&quot;password&quot;</span>;
			_password.<span style="color: #006600;">y</span> = <span style="color: #cc66cc;">25</span>;
			addChild<span style="color: #66cc66;">&#40;</span>_password<span style="color: #66cc66;">&#41;</span>;
			_loginButton = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Button</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_loginButton.<span style="color: #006600;">y</span> = <span style="color: #cc66cc;">50</span>;
			_loginButton.<span style="color: #006600;">label</span> = <span style="color: #ff0000;">&quot;Login&quot;</span>;
			_loginButton.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">CLICK</span>, loginButtonClick<span style="color: #66cc66;">&#41;</span>;
			addChild<span style="color: #66cc66;">&#40;</span>_loginButton<span style="color: #66cc66;">&#41;</span>;
			init<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">//init called from constructor</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			request = <span style="color: #000000; font-weight: bold;">new</span> RibbitServices<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			authMgr = request.<span style="color: #006600;">authenticationManager</span>;
			authMgr.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>AuthenticationEvent.<span style="color: #006600;">LOGGED_IN</span>, onLoggedIn<span style="color: #66cc66;">&#41;</span>;
			authMgr.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>AuthenticationEvent.<span style="color: #006600;">LOGGED_OUT</span>, onLoggedOut<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>			
&nbsp;
		<span style="color: #808080; font-style: italic;">//click handler, logs in or logs out based on loggedIn value</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> loginButtonClick<span style="color: #66cc66;">&#40;</span>event:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			_loginButton.<span style="color: #0066CC;">enabled</span> = <span style="color: #000000; font-weight: bold;">false</span>;
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>!loggedIn<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>_username.<span style="color: #0066CC;">text</span> + <span style="color: #ff0000;">&quot;, &quot;</span> + _password.<span style="color: #0066CC;">text</span><span style="color: #66cc66;">&#41;</span>;
				authMgr.<span style="color: #006600;">login</span><span style="color: #66cc66;">&#40;</span>_username.<span style="color: #0066CC;">text</span>, _password.<span style="color: #0066CC;">text</span>, appID, devID<span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span>
				authMgr.<span style="color: #006600;">logout</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>	
&nbsp;
		<span style="color: #808080; font-style: italic;">//Ribbit event handler when logged in</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onLoggedIn<span style="color: #66cc66;">&#40;</span>event:AuthenticationEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			loggedIn = <span style="color: #000000; font-weight: bold;">true</span>;
			_loginButton.<span style="color: #0066CC;">enabled</span> = <span style="color: #000000; font-weight: bold;">true</span>;
			_loginButton.<span style="color: #006600;">label</span> = <span style="color: #ff0000;">&quot;Logout&quot;</span>;
		<span style="color: #66cc66;">&#125;</span>		
&nbsp;
		<span style="color: #808080; font-style: italic;">//Ribbit event handler when logged out</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onLoggedOut<span style="color: #66cc66;">&#40;</span>event:AuthenticationEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			loggedIn = <span style="color: #000000; font-weight: bold;">false</span>;
			_loginButton.<span style="color: #0066CC;">enabled</span> = <span style="color: #000000; font-weight: bold;">true</span>;
			_loginButton.<span style="color: #006600;">label</span> = <span style="color: #ff0000;">&quot;Login&quot;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;</pre>
<p><strong>Summary:</strong> Instead of doing layout with Flex MXML, we're adding TextInput and Button controls. After that, the Actionscript 3 code used is almost identical. Note that in Flash Professional you could easily drag and drop these controls on the stage and refer to their instance names in the code. Also note that you could draw your own text fields and buttons with code. However, since we have to include the Flash Toolkit in our Library, we might as well use some of the canned UI controls as well in this example.</p>
<p><strong>Next Post:</strong> I'll be moving away from login and into some of the other cooler aspects of the platform next. Stay tuned.</p>


<p>No related posts.</p><img src="http://feeds.feedburner.com/~r/ribbitdeveloper/~4/TOjWuH2H2IQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://developer.ribbit.com/blog/flash-example-ribbit-auth-with-simple-actionscript-3/feed/</wfw:commentRss>
		<feedburner:origLink>http://developer.ribbit.com/blog/flash-example-ribbit-auth-with-simple-actionscript-3/</feedburner:origLink></item>
		<item>
		<title>Ribbit News: Making Banner Ads Cool Again, Road Tripping</title>
		<link>http://feedproxy.google.com/~r/ribbitdeveloper/~3/8gQl08RNwxI/</link>
		<comments>http://developer.ribbit.com/blog/ribbit-news-making-banner-ads-cool-again-road-tripping/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 14:06:30 +0000</pubDate>
		<dc:creator>Kristie Wells</dc:creator>
		
		<category><![CDATA[Newsletter]]></category>

		<category><![CDATA[banner ads]]></category>

		<category><![CDATA[creativity]]></category>

		<category><![CDATA[fitc]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[ribbit]]></category>

		<category><![CDATA[ribbit API]]></category>

		<category><![CDATA[ribbit newsletter]]></category>

		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://developer.ribbit.com/blog/?p=478</guid>
		<description><![CDATA[Making Banner Ads Cool Again
At the CaT conference in New York, we announced a new program for agencies to bring voice, messaging, and rich communications to their client's campaigns.
We started with the standard banner ad. Then added a little Ribbit flavor:

We provided a handful of sample banners to get their creative juices flowing and have [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><strong>Making Banner Ads Cool Again</strong></p>
<p>At the <a href="http://creativitycat.com">CaT</a> conference in New York, we announced a new <a href="http://agency.ribbit.com">program for agencies</a> to bring voice, messaging, and rich communications to their client's campaigns.</p>
<p>We started with the standard banner ad. Then added a little Ribbit flavor:</p>
<p><a title="This is a Phone by Ribbit Voice, on Flickr" href="http://www.flickr.com/photos/ribbitvoice/3661394232/"><img src="http://farm3.static.flickr.com/2426/3661394232_f2e9cc1fd7.jpg" alt="This is a Phone" width="500" height="62" /></a></p>
<p>We provided a handful of <a href="http://agency.ribbit.com/">sample banners</a> to get their creative juices flowing and have several running (as in: live) on <a href="http://creativity-online.com/">Creativity Online</a> right now. Why don't you pop on over to Creativity Online, check them out, and maybe even make a call...</p>
<p><strong>-----</strong></p>
<p><strong>Road Tripping</strong><br />
We have locked in a few events for the Fall, and plan to add to the the list shortly so stay tuned! As you can see, we loves the Flash. <img src='http://developer.ribbit.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<ul>
<li><a href="http://www.flashonthebeach.com">Flash on the Beach</a>: September 20-23, 2009 in Brighton, UK</li>
<li><a href="http://www.fitc.ca/events/about/?event=95">LAFlashapaloozastock IV</a>: October 3, 2009 in Venice Beach, CA</li>
<li><a href="http://www.fitc.ca/events/about/?event=100">FITC Un-conference at MAX</a>: October 4-7, 2009 in Los Angeles, CA<br />
<a href="http://www.fitc.ca/events/about/?event=99">FITC Edmonton</a>: October 17-18, 2009 in Edmonton, AB Canada</li>
</ul>


<p>No related posts.</p><img src="http://feeds.feedburner.com/~r/ribbitdeveloper/~4/8gQl08RNwxI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://developer.ribbit.com/blog/ribbit-news-making-banner-ads-cool-again-road-tripping/feed/</wfw:commentRss>
		<feedburner:origLink>http://developer.ribbit.com/blog/ribbit-news-making-banner-ads-cool-again-road-tripping/</feedburner:origLink></item>
		<item>
		<title>Ribbit Platform for Gaming</title>
		<link>http://feedproxy.google.com/~r/ribbitdeveloper/~3/5wWW7lDq9AM/</link>
		<comments>http://developer.ribbit.com/blog/ribbit-platform-for-gaming/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 22:07:10 +0000</pubDate>
		<dc:creator>Charles Freedman</dc:creator>
		
		<category><![CDATA[Feature]]></category>

		<category><![CDATA[game developer]]></category>

		<category><![CDATA[gaming]]></category>

		<category><![CDATA[ribbit]]></category>

		<category><![CDATA[ribbit API]]></category>

		<category><![CDATA[virtual voice]]></category>

		<category><![CDATA[virtual world]]></category>

		<category><![CDATA[voice in games]]></category>

		<guid isPermaLink="false">http://developer.ribbit.com/blog/?p=482</guid>
		<description><![CDATA[
We had a very cool discussion yesterday about how Ribbit will thrive in the online gaming and virtual world space. Demand is brewing to bring Ribbit's communications platform to enhance the experience of millions of online users.
I've been chatting about this with developers as far back as September of last year, when I spoke at [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><img src="http://records.viu.ca/~soules/media113/virtual_phone.jpg" alt="Virtual phone" /></p>
<p>We had a very cool discussion yesterday about how <a href="http://www.ribbit.com">Ribbit</a> will thrive in the online gaming and virtual world space. Demand is brewing to bring Ribbit's communications platform to enhance the experience of millions of online users.</p>
<p>I've been chatting about this with developers as far back as September of last year, when I spoke at MIT's Emerging Technology conference. Innovative business leaders and business graduate students were exploring ways to bring Ribbit into their gaming applications. A popular and practical use case was using Ribbit to bridge the virtual experience with the real world experience by integrating Ribbit into a game or virtual world to enable users IN THE GAME to call out to friends/buddies/teammates in the REAL WORLD and invite them in.</p>
<p>Fundamentally, game developers could leverage both the Calling and Address Book features of the Flash Platform API to let users manage a list of contact phone numbers, and associate that with the user's in game contact list. If the user logs in and find their friends not online, they could click their friend's avatar and dial out to them -- all via Ribbit's platform.</p>
<p>Of course, with the ability to dial out, comes the ability to receive phone calls in the game. Other features and possibilities we discussed included voice morphing and in game voice messaging.</p>
<p>As other server side developer technologies are made available by Ribbit later this year, games and virtual worlds built on 'virtually' anything can begin to include Ribbit services.</p>
<p>Interested in talking to Ribbit about this service and more? <strong><a href="http://developer.ribbit.com/talktous">Talk to us</a></strong> and visit <a href="http://developer.ribbit.com">developer.ribbit.com</a> for more information.</p>


<p>No related posts.</p><img src="http://feeds.feedburner.com/~r/ribbitdeveloper/~4/5wWW7lDq9AM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://developer.ribbit.com/blog/ribbit-platform-for-gaming/feed/</wfw:commentRss>
		<feedburner:origLink>http://developer.ribbit.com/blog/ribbit-platform-for-gaming/</feedburner:origLink></item>
		<item>
		<title>Ribbit News: Chatting up the White House, Tips and Tricks, Give Us an Excuse to Travel</title>
		<link>http://feedproxy.google.com/~r/ribbitdeveloper/~3/H4kX4Bc1zpk/</link>
		<comments>http://developer.ribbit.com/blog/ribbit-news-chatting-up-the-white-house-tips-and-tricks-give-us-an-excuse-to-travel/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 22:45:42 +0000</pubDate>
		<dc:creator>Kristie Wells</dc:creator>
		
		<category><![CDATA[Newsletter]]></category>

		<category><![CDATA[gov2.0]]></category>

		<category><![CDATA[ribbit]]></category>

		<category><![CDATA[ribbit news]]></category>

		<category><![CDATA[tips and tricks]]></category>

		<category><![CDATA[white house]]></category>

		<guid isPermaLink="false">http://developer.ribbit.com/blog/?p=470</guid>
		<description><![CDATA[The White House Launches Video 'Chat' on Facebook
A post from Mashable just came across my desktop and caught my eye. The Obama administration launched a live video chat today via Facebook to engage more citizens in a discussion.
I personally feel this is a great use of Social Media by the administration. I think this is [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><strong>The White House Launches Video 'Chat' on Facebook</strong><br />
A post from <a href="http://mashable.com/2009/06/18/the-white-house-facebook">Mashable</a> just came across my desktop and caught my eye. The Obama administration launched a live video chat today via Facebook to engage more citizens in a discussion.</p>
<p>I personally feel this is a great use of Social Media by the administration. I think this is a huge step forward in trying to engage the public, and applaud them for their efforts.  The only down side is that I found out about the chat AFTER the chat was over - so I would like to see them take it a step further on the next one and bring a deeper comms layer to their platforms to help keep me better informed.</p>
<p>I have several ideas, all Ribbit-related of course (SMS to let me know about the next event, call in to leave messages that are then transcribed and posted to the Facebook wall, etc.), but I wonder what <strong>YOU</strong> would recommend the White House do to bring integration of voice to the forefront of their IT plan?</p>
<p>-----</p>
<p><strong>Tips and Tricks and Maybe a Code Haiku or Two Thrown in the Mix</strong><br />
With the click of a button yesterday, Chuck kicked off a series of <a href="http://developer.ribbit.com/blog/flex-sample-loginlogout-of-ribbit-with-one-mxbutton/">Tips and Tricks posts</a> where he is going to rip some of the Ribbit code apart and put it back together with a focus on bettering the experience for the user.</p>
<p>He has made his list of topics, he has checked it twice, he will be jumping between Flash and Flex just to be nice.</p>
<p>The list is not set in stone, however, so we wondered if there was something you would like to see him tear into?</p>
<p>-----</p>
<p><strong>Ribbit on the Road</strong><br />
We have matched the Red Sox calendar to several 'absolutely must attend' upcoming conference and events (nicely done team, I might add - ha!). We've locked in several Adobe User Group visits.  We are working on Spawn events too.  But we have cabin fever. We need to get out (more). We want to beef up our Summer and Fall event schedule and we're really looking for an excuse to get out and socialize with you all. Help?</p>


<p>No related posts.</p><img src="http://feeds.feedburner.com/~r/ribbitdeveloper/~4/H4kX4Bc1zpk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://developer.ribbit.com/blog/ribbit-news-chatting-up-the-white-house-tips-and-tricks-give-us-an-excuse-to-travel/feed/</wfw:commentRss>
		<feedburner:origLink>http://developer.ribbit.com/blog/ribbit-news-chatting-up-the-white-house-tips-and-tricks-give-us-an-excuse-to-travel/</feedburner:origLink></item>
		<item>
		<title>Flex Example: login/logout of Ribbit with one mx:Button</title>
		<link>http://feedproxy.google.com/~r/ribbitdeveloper/~3/awajBMtXv-Q/</link>
		<comments>http://developer.ribbit.com/blog/flex-sample-loginlogout-of-ribbit-with-one-mxbutton/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 19:50:05 +0000</pubDate>
		<dc:creator>Charles Freedman</dc:creator>
		
		<category><![CDATA[Flex SDK]]></category>

		<category><![CDATA[Tips & Tricks]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[flex example]]></category>

		<category><![CDATA[login]]></category>

		<category><![CDATA[logout]]></category>

		<category><![CDATA[ribbit]]></category>

		<category><![CDATA[tips and tricks]]></category>

		<guid isPermaLink="false">http://developer.ribbit.com/blog/?p=443</guid>
		<description><![CDATA[
This is the first in what I plan to be an inspiring series of Tips &#038; Tricks posts. With each post, we'll take an example of a common use of Ribbit and explore how we can make the code more efficient, stylish, and a better experience for the user.
Situation: Let's look at the simple task [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><img src="http://developer.ribbit.com/blog/wp-content/uploads/2009/06/154317-300x225.jpg" alt="DO try this at home!" title="Crash Coder" width="190" height="143" class="size-medium wp-image-455" /></p>
<p><em><strong>This is the first in what I plan to be an inspiring series of Tips &#038; Tricks posts. With each post, we'll take an example of a common use of Ribbit and explore how we can make the code more efficient, stylish, and a better experience for the user.</strong></em></p>
<p><strong>Situation:</strong> Let's look at the simple task of logging into the Ribbit service via the <a href="http://developer.ribbit.com/devcenter/flex">Ribbit Flex SDK SWC</a>. Instead of commonly using a separate login and logout button, we'll use MXML to use one button that will conditionally toggle between login/logout functionality based on your loggedIn status.</p>
<p><strong>Requirements:</strong> You'll need a <a href="http://developer.ribbit.com/register">Ribbit username/password</a> and a version of <a href="http://www.adobe.com/products/flex/?promoid=BPDEQ">Flexbuilder</a>.</p>
<style>.blogbody pre {width:580px !important}</style>
<p><strong>The Code:</strong></p>
<pre class="actionscript">&nbsp;
&lt;?<span style="color: #0066CC;">xml</span> <span style="color: #0066CC;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?&gt;
&lt;mx:Application xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> layout=<span style="color: #ff0000;">&quot;absolute&quot;</span> creationComplete=<span style="color: #ff0000;">&quot;init();&quot;</span>&gt;
	&lt;mx:Script&gt;
		&lt;!<span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span>
			<span style="color: #808080; font-style: italic;">//import Ribbit API classes from Library (SWC)</span>
			<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">ribbit</span>.<span style="color: #006600;">api</span>.<span style="color: #006600;">RibbitServices</span>;
			<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">ribbit</span>.<span style="color: #006600;">api</span>.<span style="color: #006600;">interfaces</span>.<span style="color: #006600;">IAuthenticationManager</span>;
			<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">ribbit</span>.<span style="color: #006600;">api</span>.<span style="color: #006600;">events</span>.<span style="color: #006600;">AuthenticationEvent</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//declare vars</span>
			<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> request:RibbitServices;
			<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> authMgr:IAuthenticationManager;
			<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> appID:<span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">&quot;&quot;</span>;
			<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> devID:<span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">&quot;&quot;</span>;
			<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> loggedIn:<span style="color: #0066CC;">Boolean</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//init called on creationComplete event from mx:Application</span>
			<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
			<span style="color: #66cc66;">&#123;</span>
				request = <span style="color: #000000; font-weight: bold;">new</span> RibbitServices<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
				authMgr = request.<span style="color: #006600;">authenticationManager</span>;
				authMgr.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>AuthenticationEvent.<span style="color: #006600;">LOGGED_IN</span>, onLoggedIn<span style="color: #66cc66;">&#41;</span>;
				authMgr.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>AuthenticationEvent.<span style="color: #006600;">LOGGED_OUT</span>, onLoggedOut<span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>			
&nbsp;
			<span style="color: #808080; font-style: italic;">//click handler, logs in or logs out based on loggedIn value</span>
			<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> loginButtonClick<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
			<span style="color: #66cc66;">&#123;</span>
				loginButton.<span style="color: #0066CC;">enabled</span> = <span style="color: #000000; font-weight: bold;">false</span>;
				<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>!loggedIn<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
					authMgr.<span style="color: #006600;">login</span><span style="color: #66cc66;">&#40;</span>username.<span style="color: #0066CC;">text</span>, <span style="color: #0066CC;">password</span>.<span style="color: #0066CC;">text</span>, appID, devID<span style="color: #66cc66;">&#41;</span>;
				<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span>
					authMgr.<span style="color: #006600;">logout</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
				<span style="color: #66cc66;">&#125;</span>
			<span style="color: #66cc66;">&#125;</span>	
&nbsp;
			<span style="color: #808080; font-style: italic;">//Ribbit event handler when logged in</span>
			<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onLoggedIn<span style="color: #66cc66;">&#40;</span>event:AuthenticationEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
			<span style="color: #66cc66;">&#123;</span>
				loggedIn = <span style="color: #000000; font-weight: bold;">true</span>;
				loginButton.<span style="color: #0066CC;">enabled</span> = <span style="color: #000000; font-weight: bold;">true</span>;
				loginButton.<span style="color: #006600;">label</span> = <span style="color: #ff0000;">&quot;Logout&quot;</span>;
				accountInfo.<span style="color: #0066CC;">height</span> = <span style="color: #cc66cc;">0</span>;
			<span style="color: #66cc66;">&#125;</span>		
&nbsp;
			<span style="color: #808080; font-style: italic;">//Ribbit event handler when logged out</span>
			<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onLoggedOut<span style="color: #66cc66;">&#40;</span>event:AuthenticationEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
			<span style="color: #66cc66;">&#123;</span>
				loggedIn = <span style="color: #000000; font-weight: bold;">false</span>;
				loginButton.<span style="color: #0066CC;">enabled</span> = <span style="color: #000000; font-weight: bold;">true</span>;
				loginButton.<span style="color: #006600;">label</span> = <span style="color: #ff0000;">&quot;Login&quot;</span>;
				accountInfo.<span style="color: #0066CC;">height</span> = <span style="color: #cc66cc;">80</span>;
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span>&gt;
	&lt;/mx:Script&gt;
&nbsp;
	&lt;mx:Panel id=<span style="color: #ff0000;">&quot;loginPanel&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;300&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;150&quot;</span> title=<span style="color: #ff0000;">&quot;Authentication&quot;</span>&gt;
		&lt;mx:Form id=<span style="color: #ff0000;">&quot;accountInfo&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;80&quot;</span> horizontalScrollPolicy=<span style="color: #ff0000;">&quot;off&quot;</span> verticalScrollPolicy=<span style="color: #ff0000;">&quot;off&quot;</span>&gt;
			&lt;mx:FormItem label=<span style="color: #ff0000;">&quot;Username&quot;</span>&gt;
				&lt;mx:TextInput id=<span style="color: #ff0000;">&quot;username&quot;</span>/&gt;
			&lt;/mx:FormItem&gt;
			&lt;mx:FormItem label=<span style="color: #ff0000;">&quot;Password&quot;</span>&gt;
				&lt;mx:TextInput id=<span style="color: #ff0000;">&quot;password&quot;</span> displayAsPassword=<span style="color: #ff0000;">&quot;true&quot;</span>/&gt;
			&lt;/mx:FormItem&gt;
		&lt;/mx:Form&gt;
		&lt;mx:<span style="color: #0066CC;">Button</span> id=<span style="color: #ff0000;">&quot;loginButton&quot;</span> label=<span style="color: #ff0000;">&quot;Login&quot;</span> click=<span style="color: #ff0000;">&quot;loginButtonClick()&quot;</span> /&gt;
	&lt;/mx:Panel&gt;
&lt;/mx:Application&gt;
&nbsp;</pre>
<p><strong>Summary:</strong> The trick here is established at line 30, where we conditionally call either <em>login()</em> or <em>logout()</em> based on the value of <em>loggedIn</em>. We can then change the state of the UI based on the <em>onLoggedIn</em> and <em>onLoggedOut</em> events.</p>
<p><strong>Next Post:</strong> I'm just now putting together a list. Feel free to reply in comments with your suggestions.</p>


<p>No related posts.</p><img src="http://feeds.feedburner.com/~r/ribbitdeveloper/~4/awajBMtXv-Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://developer.ribbit.com/blog/flex-sample-loginlogout-of-ribbit-with-one-mxbutton/feed/</wfw:commentRss>
		<feedburner:origLink>http://developer.ribbit.com/blog/flex-sample-loginlogout-of-ribbit-with-one-mxbutton/</feedburner:origLink></item>
		<item>
		<title>Twitter Updates for 2009-06-17</title>
		<link>http://feedproxy.google.com/~r/ribbitdeveloper/~3/laFT_VYlDKM/</link>
		<comments>http://developer.ribbit.com/blog/twitter-updates-for-2009-06-17/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 10:59:00 +0000</pubDate>
		<dc:creator>Kristie Wells</dc:creator>
		
		<category><![CDATA[Inside Ribbit]]></category>

		<category><![CDATA[ribbit]]></category>

		<category><![CDATA[ribbit tweets]]></category>

		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://developer.ribbit.com/blog/twitter-updates-for-2009-06-17/</guid>
		<description><![CDATA[
@alaninbelfast @steveellwood: Please add us to the BT Twitter list. Would love to bond with more of our brethren. #
@kplanovsky: Glad you can sink your teeth into Ribbit now. Be sure to holler if you need anything. #
RT @PaulSweeney: @donthorson MSFT Vine looks like a neat app with some obvious Ribbit mashup potential. &#60;trying beta [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>@<a href="http://twitter.com/alaninbelfast">alaninbelfast</a> @steveellwood: Please add us to the BT Twitter list. Would love to bond with more of our brethren. <a href="http://twitter.com/ribbit/statuses/2192045767">#</a></li>
<li>@kplanovsky: Glad you can sink your teeth into Ribbit now. Be sure to holler if you need anything. <a href="http://twitter.com/ribbit/statuses/2192061787">#</a></li>
<li>RT @PaulSweeney: @<a href="http://twitter.com/donthorson">donthorson</a> MSFT Vine looks like a neat app with some obvious Ribbit mashup potential. &lt;trying beta now, pretty darn cool&gt; <a href="http://twitter.com/ribbit/statuses/2192145815">#</a></li>
<li>@leedryburgh: But we will &lt;always&gt; be your favorite, right? <img src='http://developer.ribbit.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <a href="http://twitter.com/ribbit/statuses/2192155216">#</a></li>
<li>RT @joseeight: @<a href="http://twitter.com/jonbcampos">jonbcampos</a> - @<a href="http://twitter.com/SlideRocket">SlideRocket</a> is also integrating @<a href="http://twitter.com/Ribbit">Ribbit</a> in its available tools, so more to love <img src='http://developer.ribbit.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> <a href="http://twitter.com/ribbit/statuses/2193619210">#</a></li>
<li>Wishing @<a href="http://twitter.com/joseeight">joseeight</a> was a gremlin so then all we had to do was pour water on him, and presto! Ribbit lovers all over the world. :p <a href="http://twitter.com/ribbit/statuses/2193640534">#</a></li>
<li>@joseeight: Absolutely. @<a href="http://twitter.com/joseeight">joseeight</a> = Gizmo. <a href="http://is.gd/13xN5" rel="nofollow">http://is.gd/13xN5</a> <a href="http://twitter.com/ribbit/statuses/2193719198">#</a></li>
<li>Darn auto tweets - last one should have said 'Adobe vs. Open Web and HTML5' <a href="http://is.gd/13DPZ" rel="nofollow">http://is.gd/13DPZ</a> <a href="http://twitter.com/ribbit/statuses/2195252022">#</a></li>
<li>RT @pete01010: @<a href="http://twitter.com/jhames">jhames</a> @<a href="http://twitter.com/hashphotoshop">hashphotoshop</a> Here is a subset of books I have on Safari Books Online #<a href="http://search.twitter.com/search?q=%23AS3">AS3</a> &amp; #<a href="http://search.twitter.com/search?q=%23Flash">Flash</a> #<a href="http://search.twitter.com/search?q=%23CS4">CS4</a> <a href="http://is.gd/12OXI" rel="nofollow">http://is.gd/12OXI</a> <a href="http://twitter.com/ribbit/statuses/2195263698">#</a></li>
<li>Shooting customer testimonials at @<a href="http://twitter.com/ribbit">ribbit</a> HQ. <a href="http://twitter.com/ribbit/statuses/2196159772">#</a></li>
<li>Thanks for the shout out @bigfuel! Ribbit presents a new platform integrating the online world and phone calls: <a href="http://bit.ly/XBSYX" rel="nofollow">http://bit.ly/XBSYX</a> <a href="http://twitter.com/ribbit/statuses/2196751321">#</a></li>
<li>Sitting @<a href="http://twitter.com/jobsworth">jobsworth</a> down in front of the camera. Expecting some good bits to come out... <a href="http://twitter.com/ribbit/statuses/2198164295">#</a></li>
<li>@<a href="http://twitter.com/AtulAcharya">AtulAcharya</a> @chuckstar: Sorry guys, didn't see tweets until interview was over &amp; @<a href="http://twitter.com/jobsworth">jobsworth</a> was long gone. Will get info &amp; post. <a href="http://twitter.com/AtulAcharya/statuses/2198666037">in reply to AtulAcharya</a> <a href="http://twitter.com/ribbit/statuses/2200237955">#</a></li>
<li>I hear Tweetdeck has a new FREE iPhone app. Will kick their tires a bit to see if better than Tweetie (which is pretty darn good). <a href="http://twitter.com/ribbit/statuses/2200307353">#</a></li>
<li>@sauloesdras: ¡Hola! ¿Qué tal? <a href="http://twitter.com/ribbit/statuses/2200363870">#</a></li>
<li>@joseeight: Hold that Tweetdeck thought...my song just came up on the techkaraoke list. ;p <a href="http://twitter.com/joseeight/statuses/2200313795">in reply to joseeight</a> <a href="http://twitter.com/ribbit/statuses/2200377103">#</a></li>
<li>@joseeight: who needs friends when you have the Internet?  &lt;kidding&gt; <a href="http://twitter.com/joseeight/statuses/2200283760">in reply to joseeight</a> <a href="http://twitter.com/ribbit/statuses/2200561213">#</a></li>
</ul>
<p class="aktt_credit">Powered by <a href="http://alexking.org/projects/wordpress">Twitter Tools</a>.</p>


<p>No related posts.</p><img src="http://feeds.feedburner.com/~r/ribbitdeveloper/~4/laFT_VYlDKM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://developer.ribbit.com/blog/twitter-updates-for-2009-06-17/feed/</wfw:commentRss>
		<feedburner:origLink>http://developer.ribbit.com/blog/twitter-updates-for-2009-06-17/</feedburner:origLink></item>
	</channel>
</rss>
