Flexviewer两个widget间的传值
来源:互联网 发布:赛尔号刷米币软件2016 编辑:程序博客网 时间:2024/06/07 08:33
本例子是通过widgetA的按钮打开widgetB,并把widgetA的某个值传值到widgetB中,代码如下:
widgetA中的代码:
<?xml version="1.0" encoding="utf-8"?><viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:viewer="com.esri.viewer.*" widgetConfigLoaded="init()"><fx:Script><![CDATA[import com.esri.viewer.AppEvent;import com.esri.viewer.BaseWidget;import com.esri.viewer.IBaseWidget;import com.esri.viewer.ViewerContainer;import mx.collections.ArrayCollection;import mx.controls.Alert;import mx.events.FlexEvent;private function init():void{}var i:int=1;protected function button1_clickHandler(event:MouseEvent):void{var msArr:ArrayCollection = new ArrayCollection(); msArr.addItem("第"+i.toString()+"次传值"); addSharedData("test", msArr); var id:Number = ViewerContainer.getInstance().widgetManager.getWidgetId("widgetB");var bWidget :IBaseWidget = ViewerContainer.getInstance().widgetManager.getWidget(id, true) as IBaseWidget;//打开widgetBi++;}]]></fx:Script><viewer:WidgetTemplate id="aa" width="300" height="300"><viewer:layout><s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/></viewer:layout><s:Button label="测试" click="button1_clickHandler(event)"/></viewer:WidgetTemplate></viewer:BaseWidget>
widgetB中代码:
<?xml version="1.0" encoding="utf-8"?><viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:viewer="com.esri.viewer.*" initialize="myBaseWidgetInitHandler(event)"><fx:Script><![CDATA[import com.esri.viewer.AppEvent;import com.esri.viewer.IBaseWidget;import com.esri.viewer.ViewerContainer;import mx.collections.ArrayCollection;import mx.controls.Alert;import mx.events.FlexEvent; import com.esri.viewer.utils.Hashtable; protected function myBaseWidgetInitHandler(event:FlexEvent):void{AppEvent.addListener(AppEvent.DATA_SENT, sharedDataUpdatedFrist);//widgetA第一次点击触发AppEvent.addListener(AppEvent.DATA_PUBLISH, sharedDataUpdatedSecond);//widgetA第二次点击后触发fetchSharedData();}/***widgetA第一次点击触发的事件***/private function sharedDataUpdatedFrist(event:AppEvent):void {var dataTable:Hashtable = event.data as Hashtable; if (dataTable.containsKey("test")) { var recAC:ArrayCollection = dataTable.find("test") as ArrayCollection; if (recAC[0]){lbl.text=recAC[0].toString();} } } /***widgetA第二次点击后触发的事件***/private function sharedDataUpdatedSecond(event:AppEvent):void { var data:Object = event.data; if (data.key == "test") { var obj:Object = data.collection[0];var arr:ArrayCollection = new ArrayCollection(); arr.addItem(obj);var str:String=arr.getItemAt(0).toString();this.lbl.text=str;}} ]]></fx:Script><viewer:WidgetTemplate id="bb" width="300" height="300"><viewer:layout><s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/></viewer:layout><s:Label id="lbl" text="标签"/></viewer:WidgetTemplate></viewer:BaseWidget>
运行结果:
- Flexviewer两个widget间的传值
- Flexviewer两个widget间的传值
- Flexviewer两个widget间的如何传值
- FlexViewer中DataManager实现Widget的间接交互-仅供参考
- 如何在flexviewer增加widget
- FlexViewer中widget打开时关闭前一个打开的widget操作(widget的排他打开)
- qt 界面两个widget的链接
- 传值选择初始化显示的widget
- ArcGIS FlexViewer中的RemoteObject的使用问题
- FlexViewer地图范围的自动缩放
- ARCGIS viewer入门(2)两个不同的widget交互
- widget 的问题--Intent的竟然传不了值
- FlexViewer的Config中配置离线google地图的瓦片
- 如何把FlexViewer的图标修改一下,如变大
- Flexviewer 解析
- ArcGIS FlexViewer
- 在widget界面添加两个模拟时钟,添加的两个模拟时钟只有一个可以正常进入
- 探秘widget之widget背后的故事
- Manacher算法求最长回文子串的长度
- 如何学习计算机图像学(来自人人数学的美学世界小站)
- Android中ViewFlipper详解
- Drag & Drop 全解析 (一)
- js类型转换
- Flexviewer两个widget间的传值
- 在Tomcat中配置xml直接指向J2EE项目
- ralasafe和shiro的集成
- 任务栈和返回堆栈
- Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart)
- setfill、setw 和 setprecision
- Drag & Drop (二)
- ExtJS4新发现01_event和method的区别
- DOM与SAX解析xml的区别