在Viewer中,我想调整当前默认的属性面板,增加一些其它属性,这个如何才能做到?
如果要修改属性面板,有两种方法。
正如 @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...
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(2)
如果要修改属性面板,有两种方法。
正如 @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...