Guys, I am not sure what you are doing wrong. I developed two very simple widgets in SFV1.3 to show how it works and to test the messaging between widgets any they work just fine.Widget A:<?xml version="1.0" encoding="utf-8"?>
<BaseWidget xmlns="com.esri.solutions.flexviewer.*" xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
private function sendMessage():void
{
var recAC:ArrayCollection = new ArrayCollection();
recAC.addItem("Hello World");
addSharedData("Some Unique Name", recAC);
}
]]>
</mx:Script>
<WidgetTemplate id="wTemplate">
<mx:Button x="10" y="10" label="Button" click="sendMessage()"/>
</WidgetTemplate>
</BaseWidget>Widget B:<?xml version="1.0" encoding="utf-8"?>
<BaseWidget xmlns="com.esri.solutions.flexviewer.*" xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="init()">
<mx:Script>
<![CDATA[
import com.esri.solutions.flexviewer.SiteContainer;
import com.esri.solutions.flexviewer.utils.Hashtable;
import mx.collections.ArrayCollection;
import com.esri.solutions.flexviewer.AppEvent;
private function init():void
{
SiteContainer.addEventListener(AppEvent.DATA_UPDATED, sharedDataUpdated);
}
private function sharedDataUpdated(event:AppEvent):void
{
var dataTable:Hashtable = event.data as Hashtable;
if (dataTable.containsKey("Some Unique Name"))
{
var recAC:ArrayCollection = dataTable.find("Some Unique Name") as ArrayCollection;
var obj:Object = recAC[0];
//do something with obj
ta.text = obj.toString();
dataTable.remove("Some Unique Name");
}
}
]]>
</mx:Script>
<WidgetTemplate id="wTemplate">
<mx:TextArea id="ta" width="100%" height="100%"/>
</WidgetTemplate>
</BaseWidget>Config.xml entries:<widget label="Send" icon="com/esri/solutions/flexviewer/assets/images/icons/i_lego.png" menu="menuWidgets" config="">com/esri/solutions/flexviewer/widgets/SendMessageWidget.swf</widget>
<widget label="Recieve" icon="com/esri/solutions/flexviewer/assets/images/icons/i_lego.png" menu="menuWidgets" config="">com/esri/solutions/flexviewer/widgets/MessagingWidget.swf</widget>