2013-02-20 60 views
0

几个问题我有cgSceneGraph几个问题1.4.2上cgSceneGraph 1.4.2

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

会移除所有的节点和重绘他们都以不同的顺序才有意义?这是不是CPU内存要求?

任何其他的想法或解决方案呢?

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

要抓住关键按下事件我用

document.onkeydown = function (event) { 
    scope.onKeyDown(event); 
}; 
document.onkeyup = function (event) { 
    scope.onKeyUp(event); 
}; 

节点旋转 有没有办法以同样的方式,用户调整大小/缩放它们旋转的节点?也许通过使用一个键作为限定符来启用旋转来调整大小?

对不起,所有这些问题。感谢您的帮助和时间。

回答

0

这里有3个问题:)

第一个

: cgSceneGraph将呈现他们已添加的顺序列出节点。 因此,要改变的z-index(存在于框架没有的z-index),你必须使用这2种方法(这是我们使用我们的应用程序):

CGSGNode::detachChild // will detach the child from its parent without destroy it. To destroy it, use "removeChild" instead 

CGSGNode::addChild(childNode); // or "accChildAt(index)" 

速度非常快,所以您可以实时使用它。

第二个: cgSceneGraph已经赶上键盘事件(多为多选)。 如果你想覆盖这个,你必须为你的处理程序方法命名一个不同于框架使用的方法。

第三个问题: 这不是一个“原生”的特点。通过扩展框架(这是非常可扩展的)总是可能的,但它将成为cgSceneGraph的第二版的一部分(在良好的方式上进行开发:))。 在框架的V1上旋转已经完全正常,但是所选对象的边界框在实际旋转中还没有注意(在v1中)。

希望得到这个帮助

+0

感谢您的快速回复。 关于第一个问题和你的答案。您在这里描述的方式将使我有机会将节点移到另一个节点上,因为它只是重新创建一个节点,所以它会覆盖其他每个节点。我说的是增加或减少它的索引一个,或者如果你喜欢,一个节点可以将它的索引与下一个索引进行交换,如果增加,或者前一个索引减少。 – walkero 2013-02-20 23:21:22

+0

它不会重新创建节点。有了'detachChild',你的节点仍然存在,但不再连接到它的父节点(不再连接到任何节点)。然后,将节点重新附加到同一个父节点,但在列表末尾(使用'addChild')或列表中的所需位置(使用'addChildAt')。您可以轻松创建一种方法,使用这两种方法来增加或减少节点的当前索引。其实这是一个好主意,我会在V2中添加这样的方法:) – 2013-02-21 08:31:36

+0

谢谢你的帮助。你帮助我把我的项目推进。 – walkero 2013-02-21 12:40:40