AppEvent.dispatch(AppEvent.WIDGET_RUN, ViewerContainer.getInstance().getWidgetId("WIDGET_NAME"));
recAC.addItem(obj.OBJECTID);
addSharedData("HelloWorldWidget", recAC);AppEvent.addListener(AppEvent.DATA_PUBLISH, sharedDataUpdated); AppEvent.addListener(AppEvent.DATA_SENT, sharedDataUpdated);
private function sharedDataUpdated(event:AppEvent):void
{
var data:Hashtable = event.data as Hashtable;
Alert.show("Length is "+data);
if (data.containsKey("HelloWorldWidget"))
{
var myAC:ArrayCollection =data.find("HelloWorldWidget") as ArrayCollection;
Alert.show("Length is "+myAC.length);
}
}Here was similar task.
And here is other way to do it.
<esri:Query id="query" outFields="
// in script tag [Bindable] private var objid:Number; // in some function when object id changed objid = somevalue; // in declaration tag <esri:Query id="query" outFields="
// in some function when object id changed
query.where = StringUtil.substitute("OBJECTID={0}", somevalue);
// in declaration tag
<esri:Query id="query" outFields="public static const REFRESH_MY_WIDGET_NR_2:String = "refreshMyWidgetNr2";
AppEvent.addListener(AppEvent.REFRESH_MY_WIDGET_NR_2, widgetRefreshHandler, false, 1);
...
private function widgetRefreshHandler(event:AppEvent):void
{
// right place to refresh
// read sended data
// var sendedData:Object = event.data;
}var sendedData:Object = null; AppEvent.dispatch(AppEvent.REFRESH_MY_WIDGET_NR_2, sendedData);
private function widgetCommunication1():void
{
addSharedData("your key", shared data(ArrayCollection));
}
<viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:viewer="com.esri.viewer.*"
initialize="basewidget1_initializeHandler(event)"
>
<fx:Script>
<![CDATA[
import com.esri.viewer.AppEvent;
import mx.events.FlexEvent;
protected function basewidget1_initializeHandler(event:FlexEvent):void
{
ViewerContainer.addEventListener(AppEvent.DATA_PUBLISH, sharedDataUpdated);
}
private function sharedDataUpdated(event:AppEvent):void
{
var data:Object = event.data;
if (data.key == "my key")
{
// do something..
}
}
]]>
</fx:Script>