多个层加载场景时显示影藏构件方法不稳定

0 投票

使用产品:SuperMap iClient  3D 8C for WebGL 操作系统:win7 x64
数据类型:  文件型

问题详细描述:多个层加载到场景后,调用WebGL API方法:S3MTilesLayer.setObjsVisible(ids , visible) 有不稳定显示的情况。请问setObjsVisible(ids 后是否需要调用某个方法刷新下场景?

问题重现步骤: 1. 某个层调用setObjsVisible隐藏构件后,鼠标单击或滑轮移动场景,影藏的构件又显示出来了;多点几次影藏的构件又正常影藏了。

2. 某个层调用setObjsVisible隐藏构件后,再显示该构件时发现有周边其它构件影藏掉了

2月 24, 2017 分类:  787次浏览 | 用户: jon.yang 初出茅庐 (22 分)
重新分类 2月 24, 2017 用户:jon.yang

1个回答

0 投票
 
已采纳

您好,分类记得选三维,方便我及时收到你的问题邮件。

您用的是 SuperMap iClient  3D 8C for WebGL吧。 

2月 24, 2017 用户: 邹涛 名扬四海 (3,389 分)
采纳于 3月 6, 2017 用户:jon.yang

是的,我是用的SuperMap iClient  3D 8C for WebGL,下次一定记得正确。

请问这种情况有什么好办法?

这个还没碰到过,能否把你代码发我直接测试?
请加下我QQ:7634288
有你方便留的联系方式吗?
已经加你了

请问问题二解决了吗??

2. 某个层调用setObjsVisible隐藏构件后,再显示该构件时发现有周边其它构件影藏掉了

您好,还在处理中
还在研发中的意思吗??有没有暂用补救方案啊
目前还没有,我这边再催一下。
有个思路你可以参考下:

1. 用一个object变量保存所有隐藏的层和层内的构件,例如 hideObj['层一'] = [1,2,3];//“层一”为layer的_name属性

2. 获取所有图层并循环,  var layers = scene.layers._layers._array;

3. 判断是否在hideObj内存在该图层,if(hideObj[layers[i]._name])

4. 如果存在则隐藏  _ids = hideObj[layers[i]._name]; layers[i].setObjsVisible(_ids, false);
...