FlexViewer3.0中隐藏ESRI Logo的方法

时间:2022-08-20 23:52:36

1.设置config.xml中的Map标签中的esrilogovisible="false"来关闭。

其实现流程是这样的:Map先实例化,这时Logo其实是可见的,然后下载config.xml并解析,遇到esrilogovisible="false"就将Logo设置为不可见
一般情况下这个过程很快,基本上是来不及看见Logo的,但是偶尔网速卡一下,config.xml来得不是那么及时,那么Logo就出现了,然后随着config.xml的下载成功并解析,Logo又不见了。

2. 在MapManager.mxml中的方法private function configMapAttributes():void中修改

 else if (id == "esriLogo")
{
       //map.logoVisible = m_configData.mapAttrs[i].esriLogoVisible;
       map.logoVisible=false;
 }

效果同1.

 

3.如果要彻底屏蔽Logo,修改MapManager.mxml的this_creationCompleteHandler函数.
1.3版FlexViewer中Logo是用Image实现的,2.4版FlexViewer里面是用SWFLoader实现的

在函数开头增加如下一段代码
for (var i:uint = 0; i<map.staticLayer.numChildren; i++)
{
        if (map.staticLayer.getChildAt(i) is SWFLoader)
        {
                (map.staticLayer.getChildAt(i) as SWFLoader).visible = false;                                               
        }
}

3.0中使用的是Image,代码如下:

for (var i:uint = 0; i<map.staticLayer.numChildren; i++)
{
       //var str:String=map.staticLayer.getChildAt(i).name;
       if (map.staticLayer.getChildAt(i) is spark.components.Image)
       {
               (map.staticLayer.getChildAt(i) as spark.components.Image).visible = false;                                               
       }
}