84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
在Viewer中,我想调整当前默认的属性面板,增加一些其它属性,这个如何才能做到?
认证0级讲师
如果要修改属性面板,有两种方法。
正如 @most_wanted 提到的用 addProperty 方法,比如如下代码:
AdjustPropertyPanel = function () {
var propertyPanel = _viewer.getPropertyPanel(true)propertyPanel.setTitle('My Panel')propertyPanel.addProperty('test', 'john', 'new cat', null)propertyPanel.setVisible(true)
}
但是这个会有局限性,如果这段代码加到 Autodesk.Viewing.SELECTION_CHANGED_EVENT 事件中时,该事件回调函数执行后,viewer又会调用 propertyPanel 的 setNodeProperties() 函数,这个会导致整个property panel 被重新刷新,新增的属性会丢失。
另外一种方法就是扩展原有的property panel,直接重载了原有的 Property Panel,比如 Viewing.ClassroomTrainning.AdnPropertyPanel, 其中在setProperties 函数中额外添加自己的自定义属性。
Viewing.ClassroomTrainning.AdnPropertyPanel = function (viewer) {
var _panel = this
var _viewer = viewer
var _selectedNodeId = ''
Autodesk.Viewing.Extensions.ViewerPropertyPanel.call(_panel,_viewer)
_panel.setNodeProperties = function (nodeId) {Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype.setNodeProperties.call(
_panel, nodeId)
_selectedNodeId = nodeId}
_panel.setProperties = function (properties) {Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype.setProperties.call(
_panel, properties)
_panel.addProperty(
'Node Id', // property name _selectedNodeId, // property value 'Customization') // group name
} Viewing.ClassroomTrainning.AdnPropertyPanel.prototype =
Object.create(Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype)
Viewing.ClassroomTrainning.AdnPropertyPanel.prototype.constructor =
Viewing.ClassroomTrainning.AdnPropertyPanel
以上的例子代码都在我的Github,https://github.com/JohnOnSoft...
https://developer.autodesk.co...
如果要修改属性面板,有两种方法。
正如 @most_wanted 提到的用 addProperty 方法,比如如下代码:
var propertyPanel = _viewer.getPropertyPanel(true)
propertyPanel.setTitle('My Panel')
propertyPanel.addProperty('test', 'john', 'new cat', null)
propertyPanel.setVisible(true)
但是这个会有局限性,如果这段代码加到 Autodesk.Viewing.SELECTION_CHANGED_EVENT 事件中时,该事件回调函数执行后,viewer又会调用 propertyPanel 的 setNodeProperties() 函数,这个会导致整个property panel 被重新刷新,新增的属性会丢失。
另外一种方法就是扩展原有的property panel,直接重载了原有的 Property Panel,比如 Viewing.ClassroomTrainning.AdnPropertyPanel, 其中在setProperties 函数中额外添加自己的自定义属性。
var _panel = this
var _viewer = viewer
var _selectedNodeId = ''
Autodesk.Viewing.Extensions.ViewerPropertyPanel.call(
_panel,
_viewer)
_panel.setNodeProperties = function (nodeId) {
Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype.setNodeProperties.call(
_selectedNodeId = nodeId
}
_panel.setProperties = function (properties) {
Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype.setProperties.call(
_panel.addProperty(
}
Object.create(
Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype)
Viewing.ClassroomTrainning.AdnPropertyPanel
以上的例子代码都在我的Github,
https://github.com/JohnOnSoft...
https://developer.autodesk.co...