浅谈 arcgis for flex 之,InfoSymbol 重写

多个弹出框一直是客户想要的东西,但是网上的都比较简单。infoWindow 虽然可以弹出复杂的框,但是,只能够是一个。

所以使用了InfoSymbol.

 

首先InfoSymbol只是一个graphic,所以,可以保存在graphicsLayer,然后在使用graphicsLayer一些特性,就可以实现关闭按钮,移动等功能。

核心代码 ,当我们点击一个图标的时候。

 

 graphicsLayer = new GraphicsLayer();
          graphicsLayer.id="qbbtext";
          var arrayCollection:ArrayCollection = new ArrayCollection();
          arrayCollection.addItem(graphicsLayer);
          arrayCollection.addItem(gr.attributes);
          arrayCollection.addItem(layerId);
          arrayCollection.addItem(gr);
          arrayCollection.addItem(map);
          var infosymbol:InfoSymbol  = new InfoSymbol();
          
          var infoSymbolFactory:ClassFactory = new ClassFactory(MyComponent);
          
          infoSymbolFactory.properties= {id:"textArea",text: gr.attributes.DEVICENAME,dataProvider:arrayCollection};
          //这句代码保证弹出框是在graphic上面的。
          gr.autoMoveToTop=true;
          
          infosymbol.infoRenderer=infoSymbolFactory;
          
          //保证只弹出一次信息框
          if(Config.arr.indexOf("qbbs"+gr.id,0)==-1){
           var grap:Graphic = new Graphic(gr.geometry,infosymbol);
           grap.id="qbbs"+gr.id;
           graphicsLayer.add(grap);
           Config.arr.push(grap.id);
           map.addLayer(graphicsLayer);

}

至于MyComponent 类是定义的模板类型,也就是弹出信息框的内容MyComponent extends UIComponent

要去下载相关的代码API,去构造自己想要的界面。


 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值