﻿<?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>Digital Primates&#187; remoteobject</title>
	<atom:link href="http://www.digitalprimates.net/author/category/remoteobject/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.digitalprimates.net</link>
	<description>Development and Consulting</description>
	<lastBuildDate>Thu, 16 May 2013 21:25:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Creating a Remote Object DataManager in ActionScript 3.0 for Flex 2.0</title>
		<link>http://www.digitalprimates.net/author/tapper/2006/01/04/creating-a-remote-object-datamanager-in-actionscript-3-0-for-flex-2-0/</link>
		<comments>http://www.digitalprimates.net/author/tapper/2006/01/04/creating-a-remote-object-datamanager-in-actionscript-3-0-for-flex-2-0/#comments</comments>
		<pubDate>Wed, 04 Jan 2006 00:01:00 +0000</pubDate>
		<dc:creator>tapper</dc:creator>
				<category><![CDATA[actionscript3]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[cfadapter]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[flex2]]></category>
		<category><![CDATA[remoteobject]]></category>

		<guid isPermaLink="false">http://test.digitalprimates.net/2006/01/04/creating-a-remote-object-datamanager-in-actionscript-3-0-for-flex-2-0/</guid>
		<description><![CDATA[Tien Nguyen followed up on my WebService DataManager with one for RemoteObject as well.I haven&#8217;t had a chance to try it myself yet, but this RemoteObject DataManager should work through the CFAdapter for more efficient data transport with ColdFusion Components &#8230; <a href="http://www.digitalprimates.net/author/tapper/2006/01/04/creating-a-remote-object-datamanager-in-actionscript-3-0-for-flex-2-0/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Tien Nguyen followed up on my WebService DataManager with one for RemoteObject as well.<br />I haven&#8217;t had a chance to try it myself yet, but this RemoteObject DataManager should work through the CFAdapter for more efficient data transport with ColdFusion Components</p>
<pre>package managers {<br />&#160;&#160;&#160; import flash.events.EventDispatcher;<br />&#160;&#160;&#160; import flash.util.*;<br />&#160;&#160;&#160; import mx.rpc.events.ResultEvent;<br />&#160;&#160;&#160; import mx.rpc.events.FaultEvent;<br />&#160;&#160;&#160; import mx.rpc.AbstractOperation;<br />&#160;&#160;&#160; import mx.rpc.remoting.mxml.RemoteObject;<br />&#160;&#160;&#160; import mx.utils.ObjectUtil;<br />&#160;&#160;&#160; import events.DataManagerResultEvent;<br />&#160;&#160;&#160; import mx.controls.Alert;<br />&#160;<br />&#160; /**<br />&#160;&#160; DataManager - singleton class which enforces only <br />&#160;&#160; a single object is created for each service.&#160; To <br />&#160;&#160; access DataManager, use getDataManager(cfservice:String)<br />&#160; */<br />&#160;<br />&#160;&#160;&#160; public class DataManagerCF extends EventDispatcher {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; private var CFsvc:RemoteObject;<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; private var eventName:String;<br />&#160;<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; // hashmap of instances for each service<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; private static var instanceMap:Object = new Object();<br />&#160;<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; public function DataManagerCF(pri:PrivateClass,dest:String){<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.CFsvc = new RemoteObject();<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; CFsvc.destination = dest;<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; public static function getDataManager(CFsvc:String):DataManagerCF{<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(DataManagerCF.instanceMap[CFsvc] == null){<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; DataManagerCF.instanceMap[CFsvc] = new DataManagerCF(new PrivateClass(),CFsvc);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; var dm:DataManagerCF= DataManagerCF.instanceMap[CFsvc];<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return dm;<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; public function makeRemoteCall(methodName:String,eventName:String,...args:Array):Void{<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.eventName = eventName;<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; var op:mx.rpc.AbstractOperation = CFsvc[methodName];<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; CFsvc.addEventListener(&quot;result&quot;, doResults);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; CFsvc.addEventListener(&quot;fault&quot;, doFault);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(args.length &gt;0){<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; op.send.apply(null,args);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160; else {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; op.send();<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; private function doResults(result:ResultEvent):Void{<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; var e:DataManagerResultEvent = new DataManagerResultEvent(eventName,result.result);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.dispatchEvent(e);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; private function doFault(fault:FaultEvent){<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.dispatchEvent(fault); <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; public override function toString():String{<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return &quot;DataManagerCF&quot;; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;&#160;&#160; }<br />&#160;<br />&#160; /**<br />&#160;&#160; PrivateClass is used to make <br />&#160;&#160; DataManager constructor private<br />&#160; */<br />&#160;<br />&#160; private class PrivateClass{<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; public function PrivateClass() {}<br />&#160; }<br />}<br /></pre>
<p>&#160;</p>
<p>I&#8217;ll post more on this in the next few days as I get a chance to work with it.<br /></p>]]></content:encoded>
			<wfw:commentRss>http://www.digitalprimates.net/author/tapper/2006/01/04/creating-a-remote-object-datamanager-in-actionscript-3-0-for-flex-2-0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
