我们的元素是彩色编码的,所以当用户选择一个时,我们只想在视图中隔离它(按预期工作)但我们不希望它更改为选择颜色 - 我们在哪里可以控制它?
问问题
736 次
2 回答
0
使用选择事件查找已选择的对象,取消选择并隔离选择的 dbId,这是您要查找的行为吗?
AutodeskNamespace("Autodesk.ADN.Viewing.Extension");
Autodesk.ADN.Viewing.Extension.Basic = function (viewer, options) {
Autodesk.Viewing.Extension.call(this, viewer, options);
var _this = this;
_this.load = function () {
console.log('LOAD')
viewer.addEventListener(
Autodesk.Viewing.AGGREGATE_SELECTION_CHANGED_EVENT, function(e) {
//console.log(e)
if(e.selections.length) {
var dbId = e.selections[0].dbIdArray[0]
viewer.select([])
viewer.isolate(dbId)
}
})
return true;
};
_this.unload = function () {
Autodesk.Viewing.theExtensionManager.unregisterExtension(
"Autodesk.ADN.Viewing.Extension.Basic");
return true;
};
};
Autodesk.ADN.Viewing.Extension.Basic.prototype =
Object.create(Autodesk.Viewing.Extension.prototype);
Autodesk.ADN.Viewing.Extension.Basic.prototype.constructor =
Autodesk.ADN.Viewing.Extension.Basic;
Autodesk.Viewing.theExtensionManager.registerExtension(
"Autodesk.ADN.Viewing.Extension.Basic",
Autodesk.ADN.Viewing.Extension.Basic);
于 2016-10-13T22:21:53.253 回答
0
如果您想保留选择而不是在 UI 中将其设为蓝色,您可以将选择材料的不透明度更改为透明:
viewer.impl.selectionMaterialBase.opacity = 0;
viewer.impl.selectionMaterialTop.opacity = 0;
现在,当您单击一个对象时,它不会变成蓝色。
于 2016-10-14T15:01:19.220 回答