<?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>blog.log2e.com &#187; FlashVars</title>
	<atom:link href="http://blog.log2e.com/tag/flashvars/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.log2e.com</link>
	<description>Tutorials and Code Snippets</description>
	<lastBuildDate>Tue, 25 May 2010 12:47:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Handling FlashVars in PureMVC</title>
		<link>http://blog.log2e.com/2008/08/13/handling-flashvars-in-puremvc/</link>
		<comments>http://blog.log2e.com/2008/08/13/handling-flashvars-in-puremvc/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 18:09:59 +0000</pubDate>
		<dc:creator>Stefan Schmalhaus</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[FlashDevelop]]></category>
		<category><![CDATA[PureMVC]]></category>
		<category><![CDATA[FlashVars]]></category>

		<guid isPermaLink="false">http://blog.log2e.com/?p=36</guid>
		<description><![CDATA[In this blog entry I would like to share my approach to handling FlashVars in a PureMVC application. I assume that you are familiar with the basic concepts of PureMVC. A Real-World Scenario Recently, I developd a PureMVC-based Flash game for a client. The application had to be multi-lingual and had to provide an auto-login [...]]]></description>
			<content:encoded><![CDATA[<p>In this blog entry I would like to share my approach to handling FlashVars in a PureMVC application. I assume that you are familiar with the basic concepts of PureMVC.</p>
<p><span id="more-36"></span></p>
<h3>A Real-World Scenario</h3>
<p>Recently, I developd a PureMVC-based Flash game for a client. The application had to be multi-lingual and had to provide an auto-login option. After registration via an HTML form, the user is redirected to the page with the embedded SWF file. The locale information and the credentials are handed over to the game page as GET variables (with the password encrypted). A PHP script then generates the appropriate JavaScript code for <a title="SWFObject" href="http://code.google.com/p/swfobject/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/swfobject/?referer=');">SWFObject</a>:</p>
<div class="geshi php">
<ol>
<li class="li1">
<div class="de1"><span class="sy0">&#8230;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>script type<span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> flashvars <span class="sy0">=</span> <span class="br0">&#123;</span> locale<span class="sy0">:</span> <span class="st0">&quot;&lt;?=$locale?&gt;&quot;</span><span class="sy0">,</span> username<span class="sy0">:</span><span class="st0">&quot;&lt;?=$username?&gt;&quot;</span><span class="sy0">,</span> password<span class="sy0">:</span><span class="st0">&quot;&lt;?=$password?&gt;&quot;</span> <span class="br0">&#125;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> params <span class="sy0">=</span> <span class="br0">&#123;</span> bgcolor<span class="sy0">:</span> <span class="st0">&quot;#000000&quot;</span> <span class="br0">&#125;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> attributes <span class="sy0">=</span> <span class="br0">&#123;</span><span class="br0">&#125;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; swfobject<span class="sy0">.</span>embedSWF<span class="br0">&#40;</span><span class="st0">&quot;Main.swf&quot;</span><span class="sy0">,</span> <span class="st0">&quot;FlashDiv&quot;</span><span class="sy0">,</span> <span class="st0">&quot;800&quot;</span><span class="sy0">,</span> <span class="st0">&quot;600&quot;</span><span class="sy0">,</span> <span class="st0">&quot;9.0.0&quot;</span><span class="sy0">,</span> <span class="st0">&quot;assets/swfobject/expressInstall.swf&quot;</span><span class="sy0">,</span> flashvars<span class="sy0">,</span> params<span class="sy0">,</span> attributes<span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">&lt;/script&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">&#8230;</span></div>
</li>
</ol>
</div>
<p>With the help of SWFObject the parameters are injected into the Flash file.</p>
<h3>The Document Class</h3>
<p>The Flash <em>Main.as</em> document class isn&#8217;t much different from a usual PureMVC document class except for extracting the <code>flashVars</code> object from the <code>root.loaderInfo</code> object&#8217;s <code>parameters</code> property and passing it to the <code>ApplicationFacade</code>&#8216;s <code>startup()</code> method as the second parameter:</p>
<p><em>Main.as</em></p>
<div class="geshi actionscript">
<ol>
<li class="li1">
<div class="de1">package </div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> flash.<span class="me1">display</span>.<span class="me1">Sprite</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> flash.<span class="me1">display</span>.<span class="me1">LoaderInfo</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> flash.<span class="me1">display</span>.<span class="me1">StageScaleMode</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> flash.<span class="me1">display</span>.<span class="me1">StageAlign</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> com.<span class="kw3">log2e</span>.<span class="me1">app</span>.<span class="me1">ApplicationFacade</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#91;</span>SWF<span class="br0">&#40;</span><span class="kw3">width</span>=<span class="st0">&quot;800&quot;</span>, <span class="kw3">height</span>=<span class="st0">&quot;600&quot;</span>, frameRate=<span class="st0">&quot;30&quot;</span>, <span class="kw3">backgroundColor</span>=<span class="st0">&quot;#FFFFFF&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">public</span> <span class="kw2">class</span> Main <span class="kw3">extends</span> Sprite</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#123;</span> &nbsp; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> Main<span class="br0">&#40;</span><span class="br0">&#41;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw3">stage</span>.<span class="kw3">scaleMode</span> = StageScaleMode.<span class="me1">NO_SCALE</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw3">stage</span>.<span class="kw3">align</span> = StageAlign.<span class="me1">TOP_LEFT</span>; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw2">var</span> flashVars:<span class="kw3">Object</span> = LoaderInfo<span class="br0">&#40;</span> <span class="kw3">this</span>.<span class="me1">root</span>.<span class="me1">loaderInfo</span> <span class="br0">&#41;</span>.<span class="me1">parameters</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw2">var</span> facade:ApplicationFacade = ApplicationFacade.<span class="me1">getInstance</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;facade.<span class="me1">startup</span><span class="br0">&#40;</span> <span class="kw3">stage</span>, flashVars <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<h3>The <em>ApplicationFacade</em></h3>
<p>Now, what to do with the <code>flashVars</code> inside the <em>ApplicationFacade</em>? I prefer using multiple fine-granulated proxy classes for managing different portions of my application&#8217;s data model. Therefore I created two proxies, one for holding the locale information, the other one for keeping track of the login parameters. Both proxies are registered by PureMVC commands that are invoked inside the <code>startup()</code> method.</p>
<p>To get the big picture first, let&#8217;s take a look at the <em>ApplicationFacade</em> class before exploring the proxies and commands:</p>
<p><em>ApplicationFacade.as</em></p>
<div class="geshi actionscript">
<ol>
<li class="li1">
<div class="de1">package com.<span class="kw3">log2e</span>.<span class="me1">app</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> org.<span class="me1">puremvc</span>.<span class="me1">as3</span>.<span class="me1">interfaces</span>.<span class="me1">IFacade</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> org.<span class="me1">puremvc</span>.<span class="me1">as3</span>.<span class="me1">patterns</span>.<span class="me1">facade</span>.<span class="me1">Facade</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> com.<span class="kw3">log2e</span>.<span class="me1">app</span>.<span class="me1">controller</span>.<span class="me1">*</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> com.<span class="kw3">log2e</span>.<span class="me1">app</span>.<span class="me1">model</span>.<span class="me1">vo</span>.<span class="me1">LoginVO</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">public</span> <span class="kw2">class</span> ApplicationFacade <span class="kw3">extends</span> Facade <span class="kw3">implements</span> IFacade</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw3">static</span> const INIT_LOCALE_PROXY:<span class="kw3">String</span> = <span class="st0">&quot;initLocaleProxy&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw3">static</span> const INIT_LOGIN_PROXY:<span class="kw3">String</span> = <span class="st0">&quot;initLoginProxy&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw3">static</span> const STARTUP:<span class="kw3">String</span> = <span class="st0">&quot;startup&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw3">static</span> <span class="kw2">function</span> getInstance<span class="br0">&#40;</span><span class="br0">&#41;</span>: ApplicationFacade </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span>instance == <span class="kw2">null</span><span class="br0">&#41;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; instance = <span class="kw2">new</span> ApplicationFacade<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">return</span> instance as ApplicationFacade;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; override protected <span class="kw2">function</span> initializeController<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw3">super</span>.<span class="me1">initializeController</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;registerCommand<span class="br0">&#40;</span> ApplicationFacade.<span class="me1">INIT_LOCALE_PROXY</span>, InitLocaleProxyCommand <span class="br0">&#41;</span>; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;registerCommand<span class="br0">&#40;</span> ApplicationFacade.<span class="me1">INIT_LOGIN_PROXY</span>, InitLoginProxyCommand <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;registerCommand<span class="br0">&#40;</span> ApplicationFacade.<span class="me1">STARTUP</span>, StartupCommand <span class="br0">&#41;</span>; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> startup<span class="br0">&#40;</span> <span class="kw3">stage</span>:<span class="kw3">Object</span>, flashVars:<span class="kw3">Object</span> <span class="br0">&#41;</span>:<span class="kw3">void</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw2">var</span> locale:<span class="kw3">String</span> = <span class="st0">&#39;&#39;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span> flashVars.<span class="me1">locale</span> <span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; locale = flashVars.<span class="me1">locale</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw2">var</span> loginVO:LoginVO = <span class="kw2">new</span> LoginVO<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span> flashVars.<span class="me1">username</span> <span class="sy0">&amp;&amp;</span> flashVars.<span class="kw3">password</span> <span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loginVO.<span class="me1">username</span> = flashVars.<span class="me1">username</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loginVO.<span class="kw3">password</span> = flashVars.<span class="kw3">password</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sendNotification<span class="br0">&#40;</span> INIT_LOCALE_PROXY, locale <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sendNotification<span class="br0">&#40;</span> INIT_LOGIN_PROXY, loginVO <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sendNotification<span class="br0">&#40;</span> STARTUP, <span class="kw3">stage</span> <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p><strong>Lines 27-28</strong>: The <code>InitLocaleProxyCommand</code> and the <code>InitLoginProxyCommand</code> are registered. These commands are responsible for populating the proxies. We will take a look at them shortly.</p>
<p><strong>Lines 34-38</strong>: So far we haven&#8217;t checked if the <code>flashVars</code> object&#8217;s <code>locale</code> property is set at all. If it is empty the <code>locale</code> variable  holds an empty string.</p>
<p><strong>Line 40</strong>: <em>LoginVO</em> is a value object class that is used as the inner data structure of the <em>LoginProxy</em>. We will take a closer look at this helper class, too.</p>
<p><strong>Lines 41-45</strong>: Similar to checking the <code>flashVars</code> object&#8217;s <code>locale</code> property, we examine the <code>username</code> and <code>password</code> properties.</p>
<p><strong>Lines 47-48</strong>: The <code>InitLocaleProxyCommand</code> and the <code>InitLoginProxyCommand</code> are triggered by sending the notifications they were registered with.</p>
<p><strong>Line 49</strong>: The application flow is continued with the usual PureMVC <code>StartupCommand</code> that takes care of registering the stage mediator, etc.</p>
<h3>The Proxy Classes</h3>
<p>In order to understand what the commands do with their payload, we need to look at the proxy classes first. The <em>LocaleProxy</em>&#8216;s data object is a string that simply contains the locale (e.g. &#8220;en_GB&#8221;):</p>
<p><em>LocaleProxy.as</em></p>
<div class="geshi actionscript">
<ol>
<li class="li1">
<div class="de1">package com.<span class="kw3">log2e</span>.<span class="me1">app</span>.<span class="me1">model</span> </div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> org.<span class="me1">puremvc</span>.<span class="me1">as3</span>.<span class="me1">interfaces</span>.<span class="me1">IProxy</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> org.<span class="me1">puremvc</span>.<span class="me1">as3</span>.<span class="me1">patterns</span>.<span class="me1">proxy</span>.<span class="me1">Proxy</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">public</span> <span class="kw2">class</span> LocaleProxy <span class="kw3">extends</span> Proxy <span class="kw3">implements</span> IProxy</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw3">static</span> const <span class="kw3">NAME</span>:<span class="kw3">String</span> = <span class="st0">&quot;LocaleProxy&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> LocaleProxy<span class="br0">&#40;</span> <span class="kw3">name</span>:<span class="kw3">String</span>, <span class="kw3">data</span>:<span class="kw3">String</span>=<span class="st0">&#39;&#39;</span> <span class="br0">&#41;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw3">super</span><span class="br0">&#40;</span> <span class="kw3">name</span>, <span class="kw3">data</span> <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> <span class="kw3">get</span> locale<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">String</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">return</span> <span class="kw3">data</span> as <span class="kw3">String</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>The <em>LoginProxy</em> class is a little more complex. Not only is the inner data structure defined by a value object class (<em>LoginVO</em>), the proxy also provides a getter method that inspects the data object in order to decide if the application should try an auto-login.</p>
<p><em>LoginProxy.as</em></p>
<div class="geshi actionscript">
<ol>
<li class="li1">
<div class="de1">package com.<span class="kw3">log2e</span>.<span class="me1">app</span>.<span class="me1">model</span> </div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> org.<span class="me1">puremvc</span>.<span class="me1">as3</span>.<span class="me1">interfaces</span>.<span class="me1">IProxy</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> org.<span class="me1">puremvc</span>.<span class="me1">as3</span>.<span class="me1">patterns</span>.<span class="me1">proxy</span>.<span class="me1">Proxy</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> com.<span class="kw3">log2e</span>.<span class="me1">app</span>.<span class="me1">model</span>.<span class="me1">vo</span>.<span class="me1">LoginVO</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">public</span> <span class="kw2">class</span> LoginProxy <span class="kw3">extends</span> Proxy <span class="kw3">implements</span> IProxy</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw3">static</span> const <span class="kw3">NAME</span>:<span class="kw3">String</span> = <span class="st0">&quot;LoginProxy&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> LoginProxy<span class="br0">&#40;</span> <span class="kw3">name</span>:<span class="kw3">String</span>, <span class="kw3">data</span>:LoginVO=<span class="kw2">null</span> <span class="br0">&#41;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw3">super</span><span class="br0">&#40;</span> <span class="kw3">name</span>, <span class="kw3">data</span> ? <span class="kw3">data</span> : <span class="kw2">new</span> LoginVO<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> <span class="kw3">get</span> tryAutoLogin<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">Boolean</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">return</span> <span class="br0">&#40;</span> loginVO.<span class="me1">username</span> <span class="sy0">!</span>= <span class="st0">&#39;&#39;</span> <span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> <span class="br0">&#40;</span> loginVO.<span class="kw3">password</span> <span class="sy0">!</span>= <span class="st0">&#39;&#39;</span> <span class="br0">&#41;</span>; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> <span class="kw3">get</span> loginVO<span class="br0">&#40;</span><span class="br0">&#41;</span>:LoginVO</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">return</span> <span class="kw3">data</span> as LoginVO;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p><strong>Lines 16-18</strong>: If the credentials have been passed to Flash via SWFObject the application is supposed to try an auto-login. If <code>tryAutoLogin</code> is <code>false</code> the user will be redirected to a login view inside the Flash movie.</p>
<p>The <em>LoginVO</em> class contains setter and getter methods for <code>username</code> and <code>password</code>.</p>
<p><em>LoginVO.as</em></p>
<div class="geshi actionscript">
<ol>
<li class="li1">
<div class="de1">package com.<span class="kw3">log2e</span>.<span class="me1">app</span>.<span class="me1">model</span>.<span class="me1">vo</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> flash.<span class="me1">net</span>.<span class="me1">registerClassAlias</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">public</span> <span class="kw2">class</span> LoginVO</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _username:<span class="kw3">String</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _password:<span class="kw3">String</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> LoginVO<span class="br0">&#40;</span> username:<span class="kw3">String</span>=<span class="st0">&#39;&#39;</span>, <span class="kw3">password</span>:<span class="kw3">String</span>=<span class="st0">&#39;&#39;</span> <span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;_username = username;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;_password = <span class="kw3">password</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> <span class="kw3">set</span> username<span class="br0">&#40;</span> username:<span class="kw3">String</span> <span class="br0">&#41;</span>:<span class="kw3">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;_username = username;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> <span class="kw3">get</span> username<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">String</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">return</span> _username;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> <span class="kw3">set</span> <span class="kw3">password</span><span class="br0">&#40;</span> <span class="kw3">password</span>:<span class="kw3">String</span> <span class="br0">&#41;</span>:<span class="kw3">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;_password = <span class="kw3">password</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> <span class="kw3">get</span> <span class="kw3">password</span><span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">String</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">return</span> _password;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">static</span> <span class="kw3">public</span> <span class="kw2">function</span> register<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> &nbsp; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;registerClassAlias<span class="br0">&#40;</span> <span class="st0">&quot;com.log2e.app.model.vo.LoginVO&quot;</span>, LoginVO <span class="br0">&#41;</span>; &nbsp; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p><strong>Lines 36-39</strong>: The static method <code>register()</code> is supposed to be used in an AMF remoting environment. Since this post describes a pure AS3 approach we can&#8217;t rely on the <code>RemoteClass</code> meta tag which is only available in Flex. (Maybe I will blog on PureMVC and AMFPHP in another post.)</p>
<h3>The Commands</h3>
<p>Finally, here are the commands that process the FlashVars information and register the proxies.</p>
<p><em>InitLocaleProxyCommand.as</em></p>
<div class="geshi actionscript">
<ol>
<li class="li1">
<div class="de1">package com.<span class="kw3">log2e</span>.<span class="me1">app</span>.<span class="me1">controller</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> com.<span class="kw3">log2e</span>.<span class="me1">app</span>.<span class="me1">model</span>.<span class="me1">LocaleProxy</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> com.<span class="kw3">log2e</span>.<span class="me1">app</span>.<span class="me1">ApplicationFacade</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> org.<span class="me1">puremvc</span>.<span class="me1">as3</span>.<span class="me1">interfaces</span>.<span class="me1">ICommand</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> org.<span class="me1">puremvc</span>.<span class="me1">as3</span>.<span class="me1">interfaces</span>.<span class="me1">INotification</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> org.<span class="me1">puremvc</span>.<span class="me1">as3</span>.<span class="me1">patterns</span>.<span class="me1">command</span>.<span class="me1">SimpleCommand</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">public</span> <span class="kw2">class</span> InitLocaleProxyCommand <span class="kw3">extends</span> SimpleCommand <span class="kw3">implements</span> ICommand </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#123;</span> &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; override <span class="kw3">public</span> <span class="kw2">function</span> execute<span class="br0">&#40;</span> note:INotification <span class="br0">&#41;</span>:<span class="kw3">void</span> &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw2">var</span> locale:<span class="kw3">String</span> = note.<span class="me1">getBody</span><span class="br0">&#40;</span><span class="br0">&#41;</span> as <span class="kw3">String</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">switch</span> <span class="br0">&#40;</span> locale <span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&#39;de_DE&#39;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&#39;en_GB&#39;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&#39;en_US&#39;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&#39;es_ES&#39;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&#39;fr_FR&#39;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&#39;it_IT&#39;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">break</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">default</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;locale = <span class="st0">&#39;en_GB&#39;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">break</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span> &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;facade.<span class="me1">registerProxy</span><span class="br0">&#40;</span> <span class="kw2">new</span> LocaleProxy<span class="br0">&#40;</span> LocaleProxy.<span class="kw3">NAME</span>, locale <span class="br0">&#41;</span> <span class="br0">&#41;</span>; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p><strong>Lines 15-27</strong>: The locale is checked against a list of valid locales. If no valid value is found a default value is set.</p>
<p>There&#8217;s nothing special about the <code>InitLoginProxyCommand</code>, I post it here just for the sake of completeness:</p>
<p><em>InitLoginProxyCommand.as</em></p>
<div class="geshi actionscript">
<ol>
<li class="li1">
<div class="de1">package com.<span class="kw3">log2e</span>.<span class="me1">app</span>.<span class="me1">controller</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> org.<span class="me1">puremvc</span>.<span class="me1">as3</span>.<span class="me1">interfaces</span>.<span class="me1">ICommand</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> org.<span class="me1">puremvc</span>.<span class="me1">as3</span>.<span class="me1">interfaces</span>.<span class="me1">INotification</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> org.<span class="me1">puremvc</span>.<span class="me1">as3</span>.<span class="me1">patterns</span>.<span class="me1">command</span>.<span class="me1">SimpleCommand</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> com.<span class="kw3">log2e</span>.<span class="me1">app</span>.<span class="me1">model</span>.<span class="me1">LoginProxy</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> com.<span class="kw3">log2e</span>.<span class="me1">app</span>.<span class="me1">ApplicationFacade</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">import</span> com.<span class="kw3">log2e</span>.<span class="me1">app</span>.<span class="me1">model</span>.<span class="me1">vo</span>.<span class="me1">LoginVO</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">public</span> <span class="kw2">class</span> InitLoginProxyCommand <span class="kw3">extends</span> SimpleCommand <span class="kw3">implements</span> ICommand </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#123;</span> &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; override <span class="kw3">public</span> <span class="kw2">function</span> execute<span class="br0">&#40;</span> note:INotification <span class="br0">&#41;</span>:<span class="kw3">void</span> &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> &nbsp; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw2">var</span> loginVO:LoginVO = note.<span class="me1">getBody</span><span class="br0">&#40;</span><span class="br0">&#41;</span> as LoginVO;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;facade.<span class="me1">registerProxy</span><span class="br0">&#40;</span> <span class="kw2">new</span> LoginProxy<span class="br0">&#40;</span> LoginProxy.<span class="kw3">NAME</span>, loginVO <span class="br0">&#41;</span> <span class="br0">&#41;</span>; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>After the <code>LocaleProxy</code> and the <code>LoginProxy</code> have been registered the <code>StartupCommand</code> (which I do not post here) takes control over the application flow by registering the <code>StageMediator</code> and so on.</p>
<p>I hope you found this post useful. Do share your thoughts and comments. Thanks for your time.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.log2e.com/2008/08/13/handling-flashvars-in-puremvc/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

