【问题标题】:KineticJS, animating specific objects/node within a layerKineticJS,动画层内的特定对象/节点
【发布时间】:2013-03-21 11:29:57
【问题描述】:

我无法弄清楚我想做的事情是否可行,如果可以,该怎么做。

我将一堆形状分为 3 组。在这 3 个组中,其中 1 个包含通过动画更新其位置的对象。我还试图让所有组/对象都可以拖动(它们相对于彼此的位置需要保持不变,所以现在我只是将它们所在的图层设置为可拖动)。

问题是动画必须重新绘制包含所有对象的整个层。似乎没有必要重绘一堆不动的形状,所以我只想为一组中的对象设置动画。但我不知道怎么做。

我正在使用的结构的一般示例:

            Stage
              |
            Layer
              |
   +----------+----------+
   |          |          |
Group 1    Group 2    Group 3

第 1 组需要进行动画处理。所有三个组都需要是可拖动的。我尝试将 Group 1 放在一个层中,然后将该层添加到父层,但这似乎不起作用。

非常粗略的例子:http://jsfiddle.net/UTcaL/

【问题讨论】:

  • 我可以在 jsfiddle 中看到你的代码吗?
  • 我在原始帖子中添加了一个示例。与我实际使用的相比,它非常基本,但基本上我的代码只是以与 jsfiddle 相同的方式设置了更多静态和移动对象。

标签: javascript kineticjs


【解决方案1】:

你需要这样做:

        Stage
          | 
   +------+------+
   |      |      |
 Layer  Layer   Layer
   |
 shapes

KineticJS 的一大优点是能够根据需要创建任意数量的层,并根据重绘频率将事物组合在不同的层中

【讨论】:

  • 我遇到的问题是我希望能够做 3 件事:1)缩放(使用 .setScale),2)拖动,3)动画。动画需要一个图层。有许多对象不需要进行动画处理,因此它们可以位于自己的单独图层中,我可以使用 onDragEnd 更新该图层的位置(在 SO 上的某处有一个示例)。但是这样做之后我无法弄清楚如何仍然缩放/缩放所有图层。如果有帮助,我拥有并尝试更改的实际代码的站点是:kurt1288.bitbucket.org。也许我在这一切都错了?
猜你喜欢
  • 1970-01-01
  • 2014-08-20
  • 2017-10-15
  • 2021-04-27
  • 2015-10-31
  • 2012-09-27
  • 2018-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多