flex 中隐藏地图上的esri的logo的最彻底的方法(转)

  在使用flex开发arcgisserver的过程中,地图上会被默认的加上一个esri自己logo。一般情况下,比如用的是自己的服务,直接在地图属性中加上logovisible=“false”就可以隐藏logo了。但是如果使用的是在线的地图服务,或者非服务模式的地图,则没有效果。于是采取了两种方法来处理。第一个是强制去掉,第二个是用自己的logo遮住ESRI的logo,偷天换日。
第一种方法:
private function init():void//init是默认加载完毕后执行的函数
{
        reallyHideESRILogo(myMap);
}

import mx.core.UIComponent;
import mx.controls.Image;

private function reallyHideESRILogo(map : Map) : void {
    for(var i : int = 0 ; i < map.numChildren ; i++){
    var component : UIComponent = map.getChildAt(i) as UIComponent;
    if(component.className == "StaticLayer"){
        for(var j : int = 0 ; j < component.numChildren ; j++){
            var stComponent : UIComponent = component.getChildAt(j) as UIComponent;
            if(stComponent.className == "Image"){
                var img:Image = stComponent as Image;
                if (img.source.toString().indexOf("logo") > 0){
                    stComponent.visible = false;
                    return;
                }
            }
        }
     }
  }
}
posted @ 2010-12-04 00:24  gisdream  阅读(1250)  评论(0编辑  收藏  举报