<?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>FlexDaddy &#187; actionscript</title>
	<atom:link href="http://www.flexdaddy.com/tag/actionscript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.flexdaddy.com</link>
	<description>Andrew Spaulding on Adobe Flash Platform Technologies</description>
	<lastBuildDate>Mon, 25 Jul 2011 04:23:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Signing an Ooyala API query with AS3</title>
		<link>http://www.flexdaddy.com/2011/07/19/signing-an-ooyala-api-query-with-as3/</link>
		<comments>http://www.flexdaddy.com/2011/07/19/signing-an-ooyala-api-query-with-as3/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 01:21:58 +0000</pubDate>
		<dc:creator>Andrew Spaulding</dc:creator>
				<category><![CDATA[Ooyala]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[signature]]></category>
		<category><![CDATA[utility]]></category>

		<guid isPermaLink="false">http://www.flexdaddy.com/?p=505</guid>
		<description><![CDATA[In order to invoke Ooyala&#8217;s APIs we require that you sign each request using a combination of private keys, the request parameters, and an expiration time. The appended signature is generated with a SHA256 hash and then by creating a Base64 encoded string of the SHA256 digest. There are a few smaller steps outlined in [...]
Related posts:<ol>
<li><a href='http://www.flexdaddy.com/2011/06/20/ooyala-django-another-awesome-ooyala-library/' rel='bookmark' title='Ooyala Django &#8211; another awesome Ooyala library'>Ooyala Django &#8211; another awesome Ooyala library</a></li>
<li><a href='http://www.flexdaddy.com/2005/09/06/alert-alert-listen-to-the-buttons/' rel='bookmark' title='Alert! Alert! Listen to the buttons!'>Alert! Alert! Listen to the buttons!</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>In order to invoke Ooyala&#8217;s APIs we require that you sign each request using a combination of private keys, the request parameters, and an expiration time. The appended signature is generated with a SHA256 hash and then by creating a Base64 encoded string of the SHA256 digest. There are a few smaller steps <a title="Ooyala Backlot API" href="http://www.ooyala.com/support/docs/backlot_api#signing" target="_blank">outlined in our documentation</a> such as limiting the signature to 43 characters in length, removing any trailing equals signs, and URI encoding the signature to make sure it is URL friendly.</p>
<p>The <a title="AS3CoreLib" href="https://github.com/mikechambers/as3corelib" target="_blank">AS3CoreLib</a> (available over at <a title="Mike Chambers" href="http://www.mikechambers.com/blog/" target="_blank">Mike Chambers</a> github) contains a crypto package, and particularly a SHA256 class. It also has a hashToBase64 method, even better! But&#8230; the Base64 utility class it uses no longer exists in the Flash runtime. The class mx.utils.Base64Encoder needs to be replaced for our use case, and you can find many online. The Base64 class I&#8217;ve chosen is freely available for use and modification from Jean-Philippe Auclair. Check out his blog post for a <a title="Base64 optimized AS3 lib" href="http://jpauclair.net/2010/01/09/base64-optimized-as3-lib/" target="_blank">Base64 optimized AS3 lib</a>.</p>
<p><a target="_blank" href="http://www.flexdaddy.com/wp-content/uploads/2011/07/OoyalaAS3SignatureGeneration.zip">Download my complete source code</a>, or if you want to create your own, the following are the steps I&#8217;ve taken to modify the Adobe SHA256 class with a different Base64 utility.<br />
<span id="more-505"></span><br />
Firstly, edit the SHA256 class in com.adobe.crypto and change the hashToBase64() function to look like this -</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">public</span> static <span style="color: #339966; font-weight: bold;">function</span> hashToBase64<span style="color: #000000;">&#40;</span> s<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">String</span> <span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">String</span>
<span style="color: #000000;">&#123;</span>
  <span style="color: #6699cc; font-weight: bold;">var</span> blocks<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Array</span> = createBlocksFromString<span style="color: #000000;">&#40;</span> s <span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
  <span style="color: #6699cc; font-weight: bold;">var</span> byteArray<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">ByteArray</span> = hashBlocks<span style="color: #000000;">&#40;</span>blocks<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
  <span style="color: #009900; font-style: italic;">// use the new Base64 class			</span>
  <span style="color: #0033ff; font-weight: bold;">return</span> Base64<span style="color: #000066; font-weight: bold;">.</span>encode<span style="color: #000000;">&#40;</span>byteArray<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Next you need to generate the signature and create the URL for the request following Ooyala&#8217;s guidelines for signature generation.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">public</span> static <span style="color: #339966; font-weight: bold;">function</span> generateURL<span style="color: #000000;">&#40;</span>pcode<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">String</span><span style="color: #000066; font-weight: bold;">,</span> scode<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">String</span><span style="color: #000066; font-weight: bold;">,</span>
                                   requestType<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">String</span><span style="color: #000066; font-weight: bold;">,</span> params<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Array</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">String</span>
<span style="color: #000000;">&#123;</span>
  <span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">!</span>params<span style="color: #000000;">&#91;</span><span style="color: #990000;">&quot;expires&quot;</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>
  <span style="color: #000000;">&#123;</span>
    <span style="color: #009900; font-style: italic;">// if no expiry time exists, add one</span>
	params<span style="color: #000000;">&#91;</span><span style="color: #990000;">&quot;expires&quot;</span><span style="color: #000000;">&#93;</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Date</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">time</span> <span style="color: #000066; font-weight: bold;">+</span> <span style="color: #000000; font-weight:bold;">900</span><span style="color: #000066; font-weight: bold;">;</span> 
  <span style="color: #000000;">&#125;</span>
&nbsp;
  <span style="color: #6699cc; font-weight: bold;">var</span> stringToSign<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">String</span> = scode<span style="color: #000066; font-weight: bold;">;</span>
  <span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">url</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">String</span> = <span style="color: #990000;">&quot;http://api.ooyala.com/&quot;</span> <span style="color: #000066; font-weight: bold;">+</span> requestType<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
  <span style="color: #004993;">url</span> <span style="color: #000066; font-weight: bold;">+</span>= <span style="color: #990000;">&quot;?pcode=&quot;</span> <span style="color: #000066; font-weight: bold;">+</span> pcode<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
  <span style="color: #6699cc; font-weight: bold;">var</span> keys<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Array</span> = extractKeysAndSort<span style="color: #000000;">&#40;</span>params<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
  <span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #0033ff; font-weight: bold;">each</span> <span style="color: #000000;">&#40;</span><span style="color: #6699cc; font-weight: bold;">var</span> key<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">String</span> <span style="color: #0033ff; font-weight: bold;">in</span> keys<span style="color: #000000;">&#41;</span>
  <span style="color: #000000;">&#123;</span>
	stringToSign <span style="color: #000066; font-weight: bold;">+</span>= key <span style="color: #000066; font-weight: bold;">+</span> <span style="color: #990000;">&quot;=&quot;</span> <span style="color: #000066; font-weight: bold;">+</span> params<span style="color: #000000;">&#91;</span>key<span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #004993;">url</span> <span style="color: #000066; font-weight: bold;">+</span>= <span style="color: #990000;">&quot;&amp;&quot;</span> <span style="color: #000066; font-weight: bold;">+</span> key <span style="color: #000066; font-weight: bold;">+</span> <span style="color: #990000;">&quot;=&quot;</span> <span style="color: #000066; font-weight: bold;">+</span> <span style="color: #004993;">encodeURIComponent</span><span style="color: #000000;">&#40;</span>params<span style="color: #000000;">&#91;</span>key<span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
  <span style="color: #000000;">&#125;</span>
&nbsp;
  <span style="color: #6699cc; font-weight: bold;">var</span> signature<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">String</span> = SHA256<span style="color: #000066; font-weight: bold;">.</span>hashToBase64<span style="color: #000000;">&#40;</span>stringToSign<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
  signature = signature<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">replace</span><span style="color: #000000;">&#40;</span><span style="color: #009966; font-style: italic;">/=+$/</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
  <span style="color: #004993;">url</span> <span style="color: #000066; font-weight: bold;">+</span>= <span style="color: #990000;">&quot;&amp;signature=&quot;</span> <span style="color: #000066; font-weight: bold;">+</span> <span style="color: #004993;">encodeURIComponent</span><span style="color: #000000;">&#40;</span>signature<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
  <span style="color: #0033ff; font-weight: bold;">return</span> <span style="color: #004993;">url</span><span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>And using the class is fairly simple. Remember to get your Partner Code and Secret Code from the developers tab in Backlot, then follow the API requirements for the specific call you want to make. </p>
<p>In this example I&#8217;m <a target="_blank" href="http://www.ooyala.com/support/docs/backlot_api#query">querying the Backlot API</a> to return details of a video. The result of a query is an XML document that could include a paginated list of results for the query items. </p>
<p>First, set up your query parameters. If you don&#8217;t include an expiration time for the query, the utility class will add one for you.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #009900; font-style: italic;">// query parameters</span>
<span style="color: #6699cc; font-weight: bold;">var</span> params<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Array</span> = <span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">;</span>
params<span style="color: #000000;">&#91;</span><span style="color: #990000;">&quot;embedCode&quot;</span><span style="color: #000000;">&#93;</span> = <span style="color: #990000;">&quot;&lt;INSERT VIDEO EMBEDCODE&gt;&quot;</span><span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<p>Next, set your query type. This is the user-friendly RESTful URL structure that is appended to the API call, such as partner/query or partner/labels.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #009900; font-style: italic;">// query type</span>
<span style="color: #6699cc; font-weight: bold;">var</span> queryType<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">String</span> = <span style="color: #990000;">&quot;partner/query&quot;</span><span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<p>And finally, using your Partner code and Secret for your Backlot account, invoke the Ooyala API Utility in one of two ways, either return a URLRequest object, or a URL string.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #009900; font-style: italic;">// generate URL Request</span>
<span style="color: #6699cc; font-weight: bold;">var</span> urlRequest<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">URLRequest</span> = OoyalaAPIUtil<span style="color: #000066; font-weight: bold;">.</span>generateSignedURLRequest<span style="color: #000000;">&#40;</span>
                                              pcode<span style="color: #000066; font-weight: bold;">,</span> scode<span style="color: #000066; font-weight: bold;">,</span> queryType<span style="color: #000066; font-weight: bold;">,</span> params<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">url</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">String</span> = OoyalaAPIUtil<span style="color: #000066; font-weight: bold;">.</span>generateURL<span style="color: #000000;">&#40;</span>pcode<span style="color: #000066; font-weight: bold;">,</span> scode<span style="color: #000066; font-weight: bold;">,</span> queryType<span style="color: #000066; font-weight: bold;">,</span> params<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<p>The resulting XML from making the call will look something like this -</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;list</span> <span style="color: #000066;">totalResults</span>=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #000066;">size</span>=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #000066;">pageID</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">statistics-as-of_text</span>=<span style="color: #ff0000;">&quot;Tue Jul 19 00:40:01 UTC 2011&quot;</span> <span style="color: #000066;">limit</span>=<span style="color: #ff0000;">&quot;500&quot;</span> <span style="color: #000066;">statistics-as-of</span>=<span style="color: #ff0000;">&quot;1311036001&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;embedCode<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>12345678901234567890<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/embedCode<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Big Buck Bunny<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>The Peach open movie project<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;status<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>live<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/status<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;content_type<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Video<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/content_type<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;uploadedAt<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1297678678<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/uploadedAt<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;length<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>596458<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/length<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;size<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>928670754<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/size<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;updatedAt<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1304451370<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/updatedAt<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;flightStartTime<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1175731200<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/flightStartTime<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;width<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1920<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/width<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;height<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1080<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/height<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;thumbnail</span> <span style="color: #000066;">height</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">&quot;0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>http://ak.c.ooyala.com/12345678901234567890/promo121984023<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/thumbnail<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;stat<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/stat<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/list<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>I&#8217;ve made this available as a Ooyala API utility class for you to use whenever you need to generate a signed URL for an Ooyala API call.</p>
<p><a target="_blank" href="http://www.flexdaddy.com/wp-content/uploads/2011/07/OoyalaAS3SignatureGeneration.zip">Download the Ooyala API Utility class for AS3 here</a>.</p>
<p>Related posts:<ol>
<li><a href='http://www.flexdaddy.com/2011/06/20/ooyala-django-another-awesome-ooyala-library/' rel='bookmark' title='Ooyala Django &#8211; another awesome Ooyala library'>Ooyala Django &#8211; another awesome Ooyala library</a></li>
<li><a href='http://www.flexdaddy.com/2005/09/06/alert-alert-listen-to-the-buttons/' rel='bookmark' title='Alert! Alert! Listen to the buttons!'>Alert! Alert! Listen to the buttons!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.flexdaddy.com/2011/07/19/signing-an-ooyala-api-query-with-as3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cast a loaded Flex Application to an Interface</title>
		<link>http://www.flexdaddy.com/2010/01/19/cast-a-loaded-flex-application-to-an-interface/</link>
		<comments>http://www.flexdaddy.com/2010/01/19/cast-a-loaded-flex-application-to-an-interface/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 05:11:37 +0000</pubDate>
		<dc:creator>Andrew Spaulding</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[loader]]></category>

		<guid isPermaLink="false">http://www.flexdaddy.com/?p=336</guid>
		<description><![CDATA[Over at The Question Room (or @thequestionroom) the banditos received a bunch of tweet questions about a problem @gertjansmits was having when loading a Flex application with a SWFLoader and casting it to an interface. They&#8217;ve called on my help to get the answer Download the application FXP (Flash Builder 4 project) or Run the [...]
Related posts:<ol>
<li><a href='http://www.flexdaddy.com/2006/04/30/flex-2-sample-application-tudu-lists/' rel='bookmark' title='Flex 2 sample application &#8211; tudu lists'>Flex 2 sample application &#8211; tudu lists</a></li>
<li><a href='http://www.flexdaddy.com/2005/05/04/flex-application-starter-toolkit/' rel='bookmark' title='Flex Application Starter Toolkit'>Flex Application Starter Toolkit</a></li>
<li><a href='http://www.flexdaddy.com/2008/08/05/build-your-first-air-application-with-adobe-flex/' rel='bookmark' title='Build your first AIR application with Adobe Flex'>Build your first AIR application with Adobe Flex</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Over at <a href="http://www.thequestionroom.com" target="_blank">The Question Room</a> (or <a href="http://twitter.com/thequestionroom" target="_blank">@thequestionroom</a>) the banditos received a bunch of tweet questions about a problem <a href="http://twitter.com/gertjansmits" target="_blank">@gertjansmits</a> was having when loading a Flex application with a SWFLoader and casting it to an interface.</p>
<p>They&#8217;ve called on my help to get the answer <img src='http://www.flexdaddy.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><a href="http://www.flexdaddy.com/wp-content/uploads/2010/01/CastToInterface.fxp" target="_blank">Download the application FXP</a> (Flash Builder 4 project) or<br />
<a href="http://www.flexdaddy.com/samples/flex3/castinterface/" target="_blank">Run the application</a> (Right click and View Source)</p>
<p>My simple interface class, TestInterface, implements 3 functions, a simple getter/setter pair and a function called sayHello.</p>
<p><strong>TestInterface.as</strong><br />
<code></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span> com<span style="color: #000066; font-weight: bold;">.</span>flexdaddy
<span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">public</span> interface TestInterface
	<span style="color: #000000;">&#123;</span>
		<span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">get</span> givenName<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">String</span>
		<span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">set</span> givenName<span style="color: #000000;">&#40;</span>str<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">String</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
		<span style="color: #339966; font-weight: bold;">function</span> sayHello<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p></code></p>
<p>You first need to make sure the Application you are loading implements this interface. My root application tag looks like this:<br />
<span id="more-336"></span><br />
<strong>LoadedApp.mxml</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="mxml" style="font-family:monospace;"><span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Application</span> xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span></span>
<span style="color: #000000;">        implements=<span style="color: #ff0000;">&quot;com.flexdaddy.TestInterface&quot;</span></span>
<span style="color: #000000;">        width=<span style="color: #ff0000;">&quot;100%&quot;</span> height=<span style="color: #ff0000;">&quot;100%&quot;</span><span style="color: #7400FF;">&gt;</span></span></pre></td></tr></table></div>

<p>And then in a Script block I make sure to implement all three functions specified above.</p>
<p><strong>LoadedApp.mxml (LoadedApp.swf)</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
</pre></td><td class="code"><pre class="mxml" style="font-family:monospace;"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Application</span> xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span></span>
<span style="color: #000000;">	implements=<span style="color: #ff0000;">&quot;com.flexdaddy.TestInterface&quot;</span></span>
<span style="color: #000000;">	width=<span style="color: #ff0000;">&quot;100%&quot;</span> height=<span style="color: #ff0000;">&quot;100%&quot;</span> <span style="color: #7400FF;">&gt;</span></span>
&nbsp;
	<span style="color: #339933;">&lt;mx:Script&gt;</span>
<span style="color: #339933;">		&lt;![CDATA[</span>
<span style="color: #339933;">			import mx.controls.Alert;</span>
&nbsp;
<span style="color: #339933;">			private var _givenName:String;</span>
&nbsp;
<span style="color: #339933;">			public function set givenName( str:String ):void</span>
<span style="color: #339933;">			{</span>
<span style="color: #339933;">				_givenName = str;</span>
<span style="color: #339933;">			}</span>
&nbsp;
<span style="color: #339933;">			public function get givenName():String</span>
<span style="color: #339933;">			{</span>
<span style="color: #339933;">				return _givenName;</span>
<span style="color: #339933;">			}</span>
&nbsp;
<span style="color: #339933;">			public function sayHello():void</span>
<span style="color: #339933;">			{</span>
<span style="color: #339933;">				mx.controls.Alert.show(  &quot;Hello &quot; + givenName );</span>
<span style="color: #339933;">			}</span>
&nbsp;
<span style="color: #339933;">		]]&gt;</span>
<span style="color: #339933;">	&lt;/mx:Script&gt;</span>
&nbsp;
<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:Application</span><span style="color: #7400FF;">&gt;</span></span></pre></td></tr></table></div>

<p>Now when loading the LoadedApp application when using a SWFLoader in the main application we first need to do the following:</p>
<ol>
<li>Listen for a SWFLoader complete event</li>
<li>Cast the SWFLoader content as a SystemManager</li>
<li>Add an event listener on the loaded content for a FlexEvent.APPLICATION_COMPLETE</li>
<li>When FlexEvent.APPLICATION_COMPLETE we can cast event.currentTarget.application to our Interface</li>
</ol>
<p>This will make sense in the code below. You&#8217;ll also notice that after we cast the loaded Flex application to TestInterface we can directly call on any methods or properties implemented from the Interface. In this case I set the givenName and call the sayHello function.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
</pre></td><td class="code"><pre class="mxml" style="font-family:monospace;"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Application</span> xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
	<span style="color: #339933;">&lt;mx:Script&gt;</span>
<span style="color: #339933;">	&lt;![CDATA[</span>
&nbsp;
<span style="color: #339933;">		import mx.events.FlexEvent;</span>
<span style="color: #339933;">		import mx.managers.SystemManager;</span>
&nbsp;
<span style="color: #339933;">		import com.flexdaddy.TestInterface;</span>
&nbsp;
<span style="color: #339933;">		private var myLoadedApp:TestInterface;</span>
&nbsp;
<span style="color: #339933;">		protected function swfloaderComplete(event:Event):void</span>
<span style="color: #339933;">		{</span>
<span style="color: #339933;">			// the SWF Loader has complete but we need to wait for the</span>
<span style="color: #339933;">			// Flex application to load</span>
&nbsp;
<span style="color: #339933;">			var loadedApp:SystemManager = event.target.content as SystemManager;</span>
<span style="color: #339933;">			loadedApp.addEventListener( FlexEvent.APPLICATION_COMPLETE, loadedAppComplete );</span>
<span style="color: #339933;">		}</span>
&nbsp;
<span style="color: #339933;">		protected function loadedAppComplete( event:FlexEvent ):void</span>
<span style="color: #339933;">		{</span>
<span style="color: #339933;">			// cast the loaded application to the Interface</span>
<span style="color: #339933;">			myLoadedApp = event.currentTarget.application as TestInterface;</span>
<span style="color: #339933;">			myLoadedApp.givenName = &quot;Flex Daddy&quot;;</span>
<span style="color: #339933;">			myLoadedApp.sayHello();</span>
<span style="color: #339933;">		}</span>
&nbsp;
<span style="color: #339933;">	]]&gt;</span>
<span style="color: #339933;">	&lt;/mx:Script&gt;</span>
&nbsp;
	<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:SWFLoader</span> source=<span style="color: #ff0000;">&quot;LoadedApp.swf&quot;</span> complete=<span style="color: #ff0000;">&quot;swfloaderComplete(event)&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
&nbsp;
<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:Application</span><span style="color: #7400FF;">&gt;</span></span></pre></td></tr></table></div>

<p>And that&#8217;s it!</p>
<p><a href="http://www.flexdaddy.com/wp-content/uploads/2010/01/CastToInterface.fxp" target="_blank">Download the application FXP</a> (Flash Builder 4 project) or<br />
<a href="http://www.flexdaddy.com/samples/flex3/castinterface/" target="_blank">Run the application</a> (Right click and View Source)</p>
<p>Related posts:<ol>
<li><a href='http://www.flexdaddy.com/2006/04/30/flex-2-sample-application-tudu-lists/' rel='bookmark' title='Flex 2 sample application &#8211; tudu lists'>Flex 2 sample application &#8211; tudu lists</a></li>
<li><a href='http://www.flexdaddy.com/2005/05/04/flex-application-starter-toolkit/' rel='bookmark' title='Flex Application Starter Toolkit'>Flex Application Starter Toolkit</a></li>
<li><a href='http://www.flexdaddy.com/2008/08/05/build-your-first-air-application-with-adobe-flex/' rel='bookmark' title='Build your first AIR application with Adobe Flex'>Build your first AIR application with Adobe Flex</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.flexdaddy.com/2010/01/19/cast-a-loaded-flex-application-to-an-interface/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Fuze Instant Messaging built on AIR</title>
		<link>http://www.flexdaddy.com/2007/08/27/fuze-instant-messaging-built-on-air/</link>
		<comments>http://www.flexdaddy.com/2007/08/27/fuze-instant-messaging-built-on-air/#comments</comments>
		<pubDate>Mon, 27 Aug 2007 00:26:17 +0000</pubDate>
		<dc:creator>Andrew Spaulding</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[chat]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[instant messaging]]></category>

		<guid isPermaLink="false">http://www.flexdaddy.info/2007/08/27/fuze-instant-messaging-built-on-air/</guid>
		<description><![CDATA[Check out the FUZE all-in-one instant messaging app built on AIR. I&#8217;m yet to try it because the install badge isn&#8217;t working correctly with the Flash Player 9 Update (Moviestar) installed, so it looks like I&#8217;ll need to downgrade. If you&#8217;re using the application, please leave a comment and let us know your thoughts. Related [...]
Related posts:<ol>
<li><a href='http://www.flexdaddy.com/2007/08/27/wanna-be-a-moviestar-with-h264-you-can-be/' rel='bookmark' title='Wanna be a moviestar? With H.264 you can be!'>Wanna be a moviestar? With H.264 you can be!</a></li>
<li><a href='http://www.flexdaddy.com/2006/07/14/jamjar-built-on-flex-2/' rel='bookmark' title='JamJar built on Flex 2'>JamJar built on Flex 2</a></li>
<li><a href='http://www.flexdaddy.com/2007/06/01/google-gears-and-adobe-apollo-on-sqlite/' rel='bookmark' title='Google Gears and Adobe Apollo on SQLite'>Google Gears and Adobe Apollo on SQLite</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.mikehuntington.com/techblog/wp-content/uploads/2007/08/beta-download.gif" alt="FUZE IM beta" /></p>
<p>Check out the <a href="http://www.mikehuntington.com/techblog/index.php/2007/08/25/fuze-beta-011-is-here-messenger-built-using-air/">FUZE all-in-one instant messaging</a> app built on <a href="http://www.adobe.com/go/air">AIR</a>. I&#8217;m yet to try it because the install badge isn&#8217;t working correctly with the <a href="http://labs.adobe.com/technologies/flashplayer9/">Flash Player 9 Update (Moviestar)</a> installed, so it looks like I&#8217;ll need to downgrade.</p>
<p>If you&#8217;re using the application, please leave a comment and let us know your thoughts. </p>
<p>Related posts:<ol>
<li><a href='http://www.flexdaddy.com/2007/08/27/wanna-be-a-moviestar-with-h264-you-can-be/' rel='bookmark' title='Wanna be a moviestar? With H.264 you can be!'>Wanna be a moviestar? With H.264 you can be!</a></li>
<li><a href='http://www.flexdaddy.com/2006/07/14/jamjar-built-on-flex-2/' rel='bookmark' title='JamJar built on Flex 2'>JamJar built on Flex 2</a></li>
<li><a href='http://www.flexdaddy.com/2007/06/01/google-gears-and-adobe-apollo-on-sqlite/' rel='bookmark' title='Google Gears and Adobe Apollo on SQLite'>Google Gears and Adobe Apollo on SQLite</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.flexdaddy.com/2007/08/27/fuze-instant-messaging-built-on-air/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Gears and Adobe Apollo on SQLite</title>
		<link>http://www.flexdaddy.com/2007/06/01/google-gears-and-adobe-apollo-on-sqlite/</link>
		<comments>http://www.flexdaddy.com/2007/06/01/google-gears-and-adobe-apollo-on-sqlite/#comments</comments>
		<pubDate>Fri, 01 Jun 2007 08:38:54 +0000</pubDate>
		<dc:creator>Andrew Spaulding</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[apollo]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[google gears]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[sqlite]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.flexdaddy.info/2007/06/01/google-gears-and-adobe-apollo-on-sqlite/</guid>
		<description><![CDATA[From Google Developer Day 2007, Sydney Australia &#8211; This morning (well yesterday now that I&#8217;m publishing the post), amongst many other announcements, Google released an open source project named &#8220;Google Gears&#8220;. Google Gears (BETA) is an open source browser extension that enables web applications to provide offline functionality using following JavaScript APIs: Store and serve [...]
Related posts:<ol>
<li><a href='http://www.flexdaddy.com/2008/05/01/adobe-removes-all-restrictions-on-swf-and-flv-specs/' rel='bookmark' title='Adobe removes all restrictions on SWF and FLV specs'>Adobe removes all restrictions on SWF and FLV specs</a></li>
<li><a href='http://www.flexdaddy.com/2008/08/05/build-your-first-air-application-with-adobe-flex/' rel='bookmark' title='Build your first AIR application with Adobe Flex'>Build your first AIR application with Adobe Flex</a></li>
<li><a href='http://www.flexdaddy.com/2007/06/19/adobe-announces-developer-fridays/' rel='bookmark' title='Adobe announces Developer Fridays'>Adobe announces Developer Fridays</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>From <a href="http://code.google.com/events/developerday/">Google Developer Day 2007</a>, Sydney Australia &#8211; </p>
<p>This morning (<em>well yesterday now that I&#8217;m publishing the post</em>), amongst many other announcements, Google released an open source project named &#8220;<a href="http://gears.google.com/">Google Gears</a>&#8220;.</p>
<p><a href="http://gears.google.com/">Google Gears</a> (BETA) is an open source browser extension that enables web applications to provide offline functionality using following JavaScript APIs:</p>
<ul>
<li>Store and serve application resources locally</li>
<li>Store data locally in a fully-searchable relational database</li>
<li>Run asynchronous Javascript to improve application responsiveness</li>
</ul>
<p><em>From the press release:</em></p>
<blockquote><p>We are releasing Gears as an open source project and we are working with Adobe, Mozilla and Opera and other industry partners to make sure that Gears is the right solution for everyone.
</p></blockquote>
<p>But what does this mean for Adobe?<br />
<span id="more-103"></span></p>
<p>This was one of the first questions to pop up on the <a href="http://groups.google.com/group/google-gears">Google Gears developer group</a>, and one of the most exciting questions to answer. The Google Gears local storage module and API is similar to the functionality available in the soon to be released <a href="http://www.adobe.com/go/apollo">Apollo</a> Beta. With a common API users can move seamlessly from developing a web based application with local storage, to being able to access the same local storage from Apollo.</p>
<p>Does Google Gears compete with Apollo? They both enable offline web applications don&#8217;t they?</p>
<p>Well no! </p>
<p>It&#8217;s a hard shift to make, to truly understand that you&#8217;re now developing a desktop application with Apollo. It&#8217;s hard because you develop for Apollo using web based technologies. An offline web application using Gears is just that &#8211; an offline web application. Apollo is so much more &#8211; a desktop application giving you the ability to have file system access, toast like messaging, native OS support, clipboard access, drag and drop between Apollo and the OS, custom window chrome (to really move away from the rectangular bounds) etc&#8230; So don&#8217;t be confused, there really isn&#8217;t any competition, but more a logical step to move from a browser world with a connected application, to running offline with the same data, to a fully integrated desktop application that can do so much more!</p>
<p>The Google Gears announcement has also been covered by &#8211; </p>
<p><a href="http://blogs.zdnet.com/Stewart/?p=399">Ryan Stewart</a><br />
<a href="http://www.mikechambers.com/blog/2007/05/30/apollo-beta-will-include-sqlite-embedded-database/">Mike Chambers (announcing SQLite in Apollo)</a></p>
<p>And in the <a href="http://home.businesswire.com/portal/site/home/index.jsp?epi-content=NEWS_VIEW_POPUP_TYPE&#038;newsId=20070530006266&#038;ndmHsc=v2*A1177930800000*B1180591242000*DgroupByDate*J2*L1*N1000837*Zgoogle&#038;newsLang=en&#038;beanID=202776713&#038;viewID=news_view_popup">press release</a>.</p>
<p><strong>How about an example?</strong></p>
<p>Well to give you a taste of what&#8217;s possible Christophe Coenraets has released a <a href="http://coenraets.org/blog/2007/05/flex-based-sqladmin-for-google-gears/">Flex-based SQLAdmin for Google Gears</a> with full source code. Remember to have Gears installed prior to running the example live on his domain.</p>
<p>Enjoy!<br />
<a href="http://technorati.com/tag/gdd07" rel="tag">gdd07</a><br />
<a href="http://technorati.com/tag/gdd07au" rel="tag">gdd07au</a></p>
<p>Related posts:<ol>
<li><a href='http://www.flexdaddy.com/2008/05/01/adobe-removes-all-restrictions-on-swf-and-flv-specs/' rel='bookmark' title='Adobe removes all restrictions on SWF and FLV specs'>Adobe removes all restrictions on SWF and FLV specs</a></li>
<li><a href='http://www.flexdaddy.com/2008/08/05/build-your-first-air-application-with-adobe-flex/' rel='bookmark' title='Build your first AIR application with Adobe Flex'>Build your first AIR application with Adobe Flex</a></li>
<li><a href='http://www.flexdaddy.com/2007/06/19/adobe-announces-developer-fridays/' rel='bookmark' title='Adobe announces Developer Fridays'>Adobe announces Developer Fridays</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.flexdaddy.com/2007/06/01/google-gears-and-adobe-apollo-on-sqlite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What&#8217;s more than just a Flex Calendar?</title>
		<link>http://www.flexdaddy.com/2007/01/05/whats-more-than-just-a-flex-calendar/</link>
		<comments>http://www.flexdaddy.com/2007/01/05/whats-more-than-just-a-flex-calendar/#comments</comments>
		<pubDate>Fri, 05 Jan 2007 05:16:38 +0000</pubDate>
		<dc:creator>Andrew Spaulding</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[calendar]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[scheduling]]></category>

		<guid isPermaLink="false">http://www.flexdaddy.info/2007/01/05/whats-more-than-just-a-flex-calendar/</guid>
		<description><![CDATA[The Flex Scheduling Framework of course! A Flex calendaring component is still one of the highest search terms that pops up for Flex Daddy on Google (flex + calendar). The Adobe Consulting team released this open source framework on Adobe Labs a few months back, but given how highly sought after this kind of thing [...]
Related posts:<ol>
<li><a href='http://www.flexdaddy.com/2005/05/04/flex-calendar-can-it-be-that-hard/' rel='bookmark' title='Flex Calendar &#8211; can it be that hard?'>Flex Calendar &#8211; can it be that hard?</a></li>
<li><a href='http://www.flexdaddy.com/2006/10/12/flex-calendar-the-most-popular-search-string/' rel='bookmark' title='Flex Calendar &#8211; the most popular search string'>Flex Calendar &#8211; the most popular search string</a></li>
<li><a href='http://www.flexdaddy.com/2006/02/01/new-flex-20-beta-products-released/' rel='bookmark' title='New Flex 2.0 Beta products released!'>New Flex 2.0 Beta products released!</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>The <a target="_blank" title="Flex Scheduling Framework" href="http://labs.adobe.com/wiki/index.php/Flex_Scheduling_Framework">Flex Scheduling Framework</a> of course! A Flex calendaring component is still one of the highest search terms that pops up for <a target="_blank" href="http://www.google.com.au/search?hl=en&#038;q=flex+calendar&#038;btnG=Google+Search">Flex Daddy on Google (flex + calendar)</a>. The Adobe Consulting team released this open source framework on Adobe Labs a few months back, but given how highly sought after this kind of thing is I thought it was worth another mention.</p>
<p>Check it out at <a target="_blank" href="http://labs.adobe.com/wiki/index.php/Flex_Scheduling_Framework">http://labs.adobe.com/wiki/index.php/Flex_Scheduling_Framework</a></p>
<p><a target="_blank" title="Quietly Scheming" href="http://www.quietlyscheming.com/">Ely</a> also has a <a target="_blank" href="http://www.quietlyscheming.com/blog/2006/10/17/looking-for-a-flex-calendar-this-might-whet-your-appetite/">great calendaring example</a> over on his blog too! </p>
<p>Related posts:<ol>
<li><a href='http://www.flexdaddy.com/2005/05/04/flex-calendar-can-it-be-that-hard/' rel='bookmark' title='Flex Calendar &#8211; can it be that hard?'>Flex Calendar &#8211; can it be that hard?</a></li>
<li><a href='http://www.flexdaddy.com/2006/10/12/flex-calendar-the-most-popular-search-string/' rel='bookmark' title='Flex Calendar &#8211; the most popular search string'>Flex Calendar &#8211; the most popular search string</a></li>
<li><a href='http://www.flexdaddy.com/2006/02/01/new-flex-20-beta-products-released/' rel='bookmark' title='New Flex 2.0 Beta products released!'>New Flex 2.0 Beta products released!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.flexdaddy.com/2007/01/05/whats-more-than-just-a-flex-calendar/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Cairngorm has a new home</title>
		<link>http://www.flexdaddy.com/2006/06/28/cairngorm-has-a-new-home/</link>
		<comments>http://www.flexdaddy.com/2006/06/28/cairngorm-has-a-new-home/#comments</comments>
		<pubDate>Wed, 28 Jun 2006 07:32:22 +0000</pubDate>
		<dc:creator>Andrew Spaulding</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[cairngorm]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://www.flexdaddy.info/2006/06/28/cairngorm-has-a-new-home/</guid>
		<description><![CDATA[As promised by Steven Webster, Cairngorm is now available on Adobe Labs! For simplicity you can use http://www.adobe.com/go/cairngorm/ which will be adopted as the standard URL. Without stealing the spotlight, I&#8217;d like to point you back to Steven&#8217;s blog. Well done team! Related posts: Cairngorm 2.0 Alpha Building RIA&#8217;s with Flex and Cairngorm Cairngorm Series [...]
Related posts:<ol>
<li><a href='http://www.flexdaddy.com/2006/02/02/cairngorm-20-alpha/' rel='bookmark' title='Cairngorm 2.0 Alpha'>Cairngorm 2.0 Alpha</a></li>
<li><a href='http://www.flexdaddy.com/2005/02/21/building-rias-with-flex-and-cairngorm/' rel='bookmark' title='Building RIA&#8217;s with Flex and Cairngorm'>Building RIA&#8217;s with Flex and Cairngorm</a></li>
<li><a href='http://www.flexdaddy.com/2006/03/15/cairngorm-series-on-flex-devnet/' rel='bookmark' title='Cairngorm Series on Flex DevNet'>Cairngorm Series on Flex DevNet</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" href="http://weblogs.macromedia.com/swebster/archives/2006/06/cairngorm_2_for_2.cfm">As promised by Steven Webster</a>, Cairngorm is now available on Adobe Labs!<br />
For simplicity you can use <a target="_blank" href="http://www.adobe.com/go/cairngorm/ ">http://www.adobe.com/go/cairngorm/</a> which will be adopted as the standard URL.</p>
<p>Without stealing the spotlight, I&#8217;d like to point you back to <a target="_blank" href="http://weblogs.macromedia.com/swebster/archives/2006/06/cairngorm_2_for_2.cfm">Steven&#8217;s blog</a>. Well done team! </p>
<p>Related posts:<ol>
<li><a href='http://www.flexdaddy.com/2006/02/02/cairngorm-20-alpha/' rel='bookmark' title='Cairngorm 2.0 Alpha'>Cairngorm 2.0 Alpha</a></li>
<li><a href='http://www.flexdaddy.com/2005/02/21/building-rias-with-flex-and-cairngorm/' rel='bookmark' title='Building RIA&#8217;s with Flex and Cairngorm'>Building RIA&#8217;s with Flex and Cairngorm</a></li>
<li><a href='http://www.flexdaddy.com/2006/03/15/cairngorm-series-on-flex-devnet/' rel='bookmark' title='Cairngorm Series on Flex DevNet'>Cairngorm Series on Flex DevNet</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.flexdaddy.com/2006/06/28/cairngorm-has-a-new-home/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flash Player 9 and Flash Professional 9 AS3 Preview</title>
		<link>http://www.flexdaddy.com/2006/06/28/flash-player-9-and-flash-professional-9-as3-preview/</link>
		<comments>http://www.flexdaddy.com/2006/06/28/flash-player-9-and-flash-professional-9-as3-preview/#comments</comments>
		<pubDate>Wed, 28 Jun 2006 07:22:54 +0000</pubDate>
		<dc:creator>Andrew Spaulding</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flash player]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://www.flexdaddy.info/2006/06/28/flash-player-9-and-flash-professional-9-as3-preview/</guid>
		<description><![CDATA[As part of the Flex 2 launch the new Flash Player 9 for Mac PPC and Windows is available for download on the adobe.com Player Download Center. The updated ActionScript 3.0 virtual machine provides a speedy environment for which your Flex 2 applications will run. Not only will you notice the performance increase for AS3 [...]
Related posts:<ol>
<li><a href='http://www.flexdaddy.com/2006/04/24/flash-player-9/' rel='bookmark' title='Flash Player 9 (formerly Flash Player 8.5)'>Flash Player 9 (formerly Flash Player 8.5)</a></li>
<li><a href='http://www.flexdaddy.com/2006/03/15/updated-debug-flash-player-for-flex-15/' rel='bookmark' title='Updated debug Flash Player for Flex 1.5'>Updated debug Flash Player for Flex 1.5</a></li>
<li><a href='http://www.flexdaddy.com/2006/10/19/flash-player-9-gets-a-new-set-of-clothes/' rel='bookmark' title='Flash Player 9 gets a new set of clothes'>Flash Player 9 gets a new set of clothes</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>As part of the Flex 2 launch the new Flash Player 9 for Mac PPC and Windows is available for download on the adobe.com <a target="_blank" href="http://www.adobe.com/go/getflashplayer/">Player Download Center</a>. The updated ActionScript 3.0 virtual machine provides a speedy environment for which your Flex 2 applications will run. Not only will you notice the performance increase for AS3 and Flex 2 applications, but also for existing Flash/Flex applications written for earlier releases. This is a great reason to update your Player version, and to notify your customers too! No doubt they will also experience the added benefits.</p>
<p><span id="more-70"></span> Also available on <a target="_blank" href="http://labs.adobe.com">Adobe Labs</a> today is the <a target="_blank" href="http://labs.adobe.com/technologies/flash9as3preview/">Flash Professional 9 ActionScript 3.0 Preview</a>! So now not only can we take advantage of the updated ActionScript programming language and performance benefits in Flex, but now in the Flash Authoring environment. This only planned preview of the next version of the flash authoring tool is only available to registered users of Flash Professional 8, but allows access to the new ActionScript 3.0 language and the ability to publish Flash Player 9 compatible applications/swf&#8217;s.</p>
<p>Bring on the next generation of rich media and internet applications!</p>
<p>Discover the Flash Professional 9 ActionScript 3.0 Preview <a target="_blank" href="http://www.adobe.com/devnet/flash/articles/flash9_as3_preview.html">in this developer center article</a>.</p>
<p>Visit the Flash Player Developer Center <a target="_blank" href="http://%20www.adobe.com/devnet/flashplayer/">www.adobe.com/devnet/flashplayer/</a> and for ActionScript 3.0 resources visit the ActionScript Technology Center  <a target="_blank" href="http://www.adobe.com/devnet/actionscript/">www.adobe.com/devnet/actionscript/</a> </p>
<p>Related posts:<ol>
<li><a href='http://www.flexdaddy.com/2006/04/24/flash-player-9/' rel='bookmark' title='Flash Player 9 (formerly Flash Player 8.5)'>Flash Player 9 (formerly Flash Player 8.5)</a></li>
<li><a href='http://www.flexdaddy.com/2006/03/15/updated-debug-flash-player-for-flex-15/' rel='bookmark' title='Updated debug Flash Player for Flex 1.5'>Updated debug Flash Player for Flex 1.5</a></li>
<li><a href='http://www.flexdaddy.com/2006/10/19/flash-player-9-gets-a-new-set-of-clothes/' rel='bookmark' title='Flash Player 9 gets a new set of clothes'>Flash Player 9 gets a new set of clothes</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.flexdaddy.com/2006/06/28/flash-player-9-and-flash-professional-9-as3-preview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Next Generation Actionscript</title>
		<link>http://www.flexdaddy.com/2005/10/18/next-generation-actionscript/</link>
		<comments>http://www.flexdaddy.com/2005/10/18/next-generation-actionscript/#comments</comments>
		<pubDate>Mon, 17 Oct 2005 22:07:44 +0000</pubDate>
		<dc:creator>Andrew Spaulding</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[MAX]]></category>

		<guid isPermaLink="false">http://www.flexdaddy.info/2005/10/18/whatactionscript-30/</guid>
		<description><![CDATA[I just spent the last hour in a session with Gary Grossman who gave a great overview of the new features and changes with Actionscript 3.0 and the API. The biggest points imho were the runtime error reporting, more strongly typed and standards compliant AS language, and most importantly the dramatic increase in performance. Many [...]
Related posts:<ol>
<li><a href='http://www.flexdaddy.com/2005/09/05/mvc-for-actionscript-2/' rel='bookmark' title='MVC  for Actionscript 2'>MVC  for Actionscript 2</a></li>
<li><a href='http://www.flexdaddy.com/2006/06/28/flash-player-9-and-flash-professional-9-as3-preview/' rel='bookmark' title='Flash Player 9 and Flash Professional 9 AS3 Preview'>Flash Player 9 and Flash Professional 9 AS3 Preview</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I just spent the last hour in a session with Gary Grossman who gave a great overview of the new features and changes with Actionscript 3.0 and the API. The biggest points imho were the runtime error reporting, more strongly typed and standards compliant AS language, and most importantly the dramatic increase in performance.  Many of you may have heard about E4X, and now it is here <img src='http://www.flexdaddy.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Such a nice way to code a read XML code on the fly, and treat it like xpath. Very neat.</p>
<p><span id="more-39"></span></p>
<p>Also of note was a light weight class which drops the concept of the timeline from the MovieClip class. The <em>Sprite</em> class is a nice light weight object for creating visual components that don&#8217;t need the timeline.</p>
<p>For more on Actionscript 3.0 namespaces see <a href="http://blairsblog.typepad.com/blairsblog/2005/10/as3_custom_name.html">this post</a> over at <a href="http://www.blairsblog.com">Blairs Blog</a>.</p>
<p>Hmm .. what else. There was so much to cover that I&#8217;m sure I missed something but keep an eye out on all the other blogs who are covering MAX <img src='http://www.flexdaddy.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Related posts:<ol>
<li><a href='http://www.flexdaddy.com/2005/09/05/mvc-for-actionscript-2/' rel='bookmark' title='MVC  for Actionscript 2'>MVC  for Actionscript 2</a></li>
<li><a href='http://www.flexdaddy.com/2006/06/28/flash-player-9-and-flash-professional-9-as3-preview/' rel='bookmark' title='Flash Player 9 and Flash Professional 9 AS3 Preview'>Flash Player 9 and Flash Professional 9 AS3 Preview</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.flexdaddy.com/2005/10/18/next-generation-actionscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resizable, Minimizable/Maximizable TitleWindow</title>
		<link>http://www.flexdaddy.com/2005/03/06/resizable-and-collapsable-titlewindow-flex-15/</link>
		<comments>http://www.flexdaddy.com/2005/03/06/resizable-and-collapsable-titlewindow-flex-15/#comments</comments>
		<pubDate>Sun, 06 Mar 2005 12:33:11 +0000</pubDate>
		<dc:creator>Andrew Spaulding</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[macromedia]]></category>

		<guid isPermaLink="false">http://www.flexdaddy.info/2005/03/06/resizable-and-collapsable-titlewindow-flex-15/</guid>
		<description><![CDATA[The TitleWindow component does not support resizing and collapsing the window, at least not until recently. Following on from Manish&#8217;s &#8216;Resizable Title Window&#8217;, Jesse&#8217;s &#8216;Collapsable Panel&#8217;, and Christophe&#8217;s &#8216;Draggable, Minimizable/Maximizable, Configurable Panel&#8217;, I felt the need to combine all such functionality into a single class. The outcome of this was a Resizable, Minimizable/Maximizable TitleWindow. The [...]
Related posts:<ol>
<li><a href='http://www.flexdaddy.com/2008/08/05/build-your-first-air-application-with-adobe-flex/' rel='bookmark' title='Build your first AIR application with Adobe Flex'>Build your first AIR application with Adobe Flex</a></li>
<li><a href='http://www.flexdaddy.com/2005/02/21/sizing-apps-within-the-loader-control/' rel='bookmark' title='Sizing apps within the Loader control'>Sizing apps within the Loader control</a></li>
<li><a href='http://www.flexdaddy.com/2006/06/28/adobe-flex-2-available-now/' rel='bookmark' title='Adobe Flex 2 available NOW!'>Adobe Flex 2 available NOW!</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>The TitleWindow component does not support resizing and collapsing the window, at least not until recently.  Following on from Manish&#8217;s <a href="http://manish.revise.org/archives/2005/01/09/resizable-titlewindow-in-flex/"> &#8216;Resizable Title Window&#8217;</a>,  Jesse&#8217;s  <a href="http://dev.jessewarden.com/flex/collapsablepanel/">&#8216;Collapsable Panel&#8217;</a>, and Christophe&#8217;s <a href="http://www.coenraets.com">&#8216;Draggable, Minimizable/Maximizable, Configurable Panel&#8217;</a>, I felt the need to combine all such functionality into a single class.</p>
<p>The outcome of this was a Resizable, Minimizable/Maximizable TitleWindow. The component is work in progress, and could be approched in a much neater fashion, so consider it a stepping stone if you&#8217;re feeling adventurous!</p>
<p><span id="more-19"></span></p>
<p>On the roadmap:</p>
<ol>
<li>Set the minimum height and width of the window for resizing. Currently the buttons and window title overlap. You can also resize the window less than the header height (whoops)</li>
<li>Modify the backgroundImage&#8217;s properties (offsets) to display a &#8216;wedge&#8217; image in the bottom right hand corner. This will help show that the window can be resized.</li>
<li>Make the resize capabilty a modifiable property.</li>
<li>Combine all image assets into one swf/fla file.</li>
</ol>
<p>That said, feel free to <a href='http://www.flexdaddy.info/wp-content/images/ResizableCollapsableTitleWindow.zip' title=''>download the sample app</a> and try it out!</p>
<p>Related posts:<ol>
<li><a href='http://www.flexdaddy.com/2008/08/05/build-your-first-air-application-with-adobe-flex/' rel='bookmark' title='Build your first AIR application with Adobe Flex'>Build your first AIR application with Adobe Flex</a></li>
<li><a href='http://www.flexdaddy.com/2005/02/21/sizing-apps-within-the-loader-control/' rel='bookmark' title='Sizing apps within the Loader control'>Sizing apps within the Loader control</a></li>
<li><a href='http://www.flexdaddy.com/2006/06/28/adobe-flex-2-available-now/' rel='bookmark' title='Adobe Flex 2 available NOW!'>Adobe Flex 2 available NOW!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.flexdaddy.com/2005/03/06/resizable-and-collapsable-titlewindow-flex-15/feed/</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
	</channel>
</rss>

