Plugin中 三维模型中对象更改颜色

0 投票
function ChangeColor(){
                var layer3Ds = scene.get_layer3Ds();
                layer3D = layer3Ds.get_item(0);
                selection3Ds = scene.findSelection3Ds(true);
                if (selection3Ds.length === 0) {
                    alert("没有对象被选中。");
                    return;
                }
                if (selection3Ds !== null) {
                    var id = selection3Ds[0].get_item(0);
                    selection3Ds[0].removeAll();
                    var feature3D = layer3D.findFeature3DByID(id);
                    
                    var regionRed = Number(document.getElementById("regionRed").value);
                    var regionGreen = Number(document.getElementById("regionGreen").value);
                    var regionBlue = Number(document.getElementById("regionBlue").value);
                        
                    var style = new SuperMap.Web.Core.Style3D();
                    //style.set_lineWidth(10003);
                    style.set_fillForeColor(new SuperMap.Web.Core.Color(regionRed, regionGreen, regionBlue, 100));
                    feature3D.set_style3D(style);

                } else {
                    alert("没有对象被选中。");
                }
            }

代码如上,选中一个对象后触发方法,对象的颜色没有改变。请问怎么能实现该方法? 谢谢
2月 28, 2017 分类:  2313次浏览 | 用户: telsafe1 才疏学浅 (17 分)

1个回答

0 投票
您好,请问你获取的是什么对象,场景有没有生成缓存?
2月 28, 2017 用户: 邹涛 名扬四海 (3,389 分)
是的,我两个场景一个是矢量缓存,一个是OSGB缓存的。但是都没有效果的

layer3D.setObjectsColor(a,new SuperMap.Web.Core.Color(regionRed, regionGreen, regionBlue, 255));

第一个参数 a  要是一个数组哦,您的是数组吗?

var a=[Number(id)];

layer3D.setObjectsColor(a,new SuperMap.Web.Core.Color(regionRed, regionGreen, regionBlue, 255));

是的啊,还有别的什么情况会导致这个问题么?

加你QQ远程看下。
远程测试是OSGB图层的对象是可以修改颜色的。
...