rgl.setMouseCallbacks:回调无法恢复默认行为

问题描述 投票:0回答:1

一旦使用 rgl.setMouseCallbacks 设置回调, rgl.setMouseCallbacks( 1, NULL, NULL, NULL ) 将不会恢复默认行为。这是一个错误还是一个功能?如果是错误,我应该提交问题吗?

我正在寻找信息。

r rgl
1个回答
0
投票

将回调设置为

NULL
意味着“无处理程序”。当文档说
NULL
是“默认值”时,他们谈论的是此函数的默认值,而不是默认的鼠标处理程序。

如果要恢复默认值,可以使用

par3d(mouseMode = r3dDefaults()$mouseMode)

如果您想恢复以前的值(可能不是默认值),您需要保存它,然后恢复它。例如,

# save old values
oldmode <- par3d("mouseMode")
oldhandlers <- rgl.getMouseCallbacks(button)

# set new values
rgl.setMouseCallbacks(button, begin=..., etc.)

.... use them for a while ....

# restore old values
do.call(rgl.setMouseCallbacks, c(list(button = button), oldhandlers))
par3d(mouseMode = oldmode)

© www.soinside.com 2019 - 2024. All rights reserved.