关于cgSceneGraph 1.4.2的几个问题

时间:2013-02-20 16:23:24

标签: html5 canvas rotation keypress nodes

我对cgSceneGraph 1.4.2

有几个问题

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

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

对此有何其他想法或解决方案?

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

要捕捉我使用的按键事件

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

节点轮播 有没有办法像用户调整大小/缩放节点一样旋转节点?也许通过使用键作为限定符来启用旋转以防止调整大小?

对所有这些问题抱歉。感谢您的帮助和时间。

1 个答案:

答案 0 :(得分:0)

这里有3个问题:)

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

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的v2的一部分(在良好的方式开发:))。 框架的V1上的旋转已经完全正常,但是所选对象的边界框(实际旋转中的v1)还没有关注。

希望这个帮助