Html 关于cgSceneGraph 1.4.2的几个问题

Html 关于cgSceneGraph 1.4.2的几个问题,html,canvas,rotation,keypress,nodes,Html,Canvas,Rotation,Keypress,Nodes,我对cgSceneGraph 1.4.2有几个问题 节点顺序 我想知道是否有办法改变画布内节点的索引。如果我们有多个节点,我创建它们的顺序就是这些节点在画布中的顺序,但是如果有办法改变它们的顺序,这将非常好。这样一来,一个大节点将不会覆盖以前的节点,甚至阻止您访问它们 删除所有节点并按不同顺序重新绘制所有节点是否有意义?这不是CPU内存需求吗 还有其他的想法或解决方案吗 键盘按键 有没有办法只在画布内锁定键盘按键?例如,如果表单也可能存在,那么页面中可能有画布。如果我们使用表单插入一些文本,那么

我对cgSceneGraph 1.4.2有几个问题

节点顺序 我想知道是否有办法改变画布内节点的索引。如果我们有多个节点,我创建它们的顺序就是这些节点在画布中的顺序,但是如果有办法改变它们的顺序,这将非常好。这样一来,一个大节点将不会覆盖以前的节点,甚至阻止您访问它们

删除所有节点并按不同顺序重新绘制所有节点是否有意义?这不是CPU内存需求吗

还有其他的想法或解决方案吗

键盘按键 有没有办法只在画布内锁定键盘按键?例如,如果表单也可能存在,那么页面中可能有画布。如果我们使用表单插入一些文本,那么按键也会传递到画布

捕捉我使用的按键事件

document.onkeydown = function (event) {
    scope.onKeyDown(event);
};
document.onkeyup = function (event) {
    scope.onKeyUp(event);
};
节点旋转 是否有一种方法可以像用户调整/缩放节点一样旋转节点?也许可以使用一个键作为限定符来启用旋转以防止调整大小


很抱歉问了这么多问题。感谢您的帮助和时间。

这里有3个问题:)

第一个: cgSceneGraph将按照节点添加的顺序渲染节点。 因此,要更改z-index(框架上没有z-index),您必须使用以下两种方法(这就是我们在应用程序中使用的方法):

它非常快,所以你可以实时使用它

第二个: cgSceneGraph已经捕捉到键盘事件(主要用于多选)。 如果您想覆盖它,您必须为您的处理程序方法指定一个与框架使用的方法不同的名称

第三个问题: 这不是“本机”功能。通过扩展框架(这是非常可扩展的)总是可能的,但它将是cgsceegraph(good-way:上的开发)v2的一部分。 在框架的V1上,旋转已经完全正常,但是选定对象的边界框尚未考虑(在V1中)实际旋转


希望这些帮助

感谢您的快速回复。关于第一个问题和你的答案。您在这里描述的方式将使我有机会将一个节点移动到另一个节点上,因为它只是重新创建了一个节点,所以它将覆盖所有其他节点。我说的是将它的索引增加或减少一个,或者如果您愿意,一个节点可以在增加的情况下与下一个节点交换它的索引,或者在减少的情况下与上一个节点交换它的索引。它不会重新创建一个节点。使用
detachChild
您的节点仍然存在,但不再连接到其父节点(不再连接到任何节点)。然后,将节点重新连接到同一父节点,但位于列表的末尾(使用
addChild
)或列表中所需的位置(使用
addChildAt
)。您可以使用这两种方法轻松创建增加或减少节点当前索引的方法。实际上这是个好主意,我将在v2中添加这样一个方法:)谢谢您的帮助。您帮助我继续我的项目。很高兴为您提供帮助:)如果答案正确,请按原样标记:)
CGSGNode::detachChild  // will detach the child from its parent without destroy it. To destroy it, use "removeChild" instead
CGSGNode::addChild(childNode); // or "accChildAt(index)"