0

我正在寻找一个 JavaScript 框架来创建像 Raphael 或 Fabric 这样的 2D 图形。我喜欢这两个 API,但我缺少一种面向对象的方法来创建具有复合模式的场景图。

有人知道这样的框架吗?

为了明确我所说的复合模式是什么意思:我想将绘制的对象排列在树中,就像在 swt 或 swing 等 GUI 框架中完成的那样(我认为 Java3D 也使用它)。你有一个

  • 组件作为所有绘制对象的父类。它描述了所有被绘制对象的常见行为和属性。
  • Component扩展并包含Components列表的容器。因此Container的行为类似于单个组件,并将Container上的所有操作委托给它的所有子组件。

使用这两个类可以很容易地创建一个场景图......

是否有使用这种模式的 2D 框架?

4

1 回答 1

3

这不是一个习惯用法(即一种特定于语言的设计模式),因此您也可以在 JavaScript 中实现它,但我不明白您为什么要这样做。

一些 JS 框架(或库)提供了自以为是的解决方案和结构化的工作流程——例如sceneJS(尽管它本质上是一个3D引擎)或D3.js——消除了实现此类模式的需要。

您还没有详细说明复合模式如何帮助创建场景图,所以我无法帮助您,但这里有一些来自人们如何在那里生活并讲述这个故事的例子:

  • Mike Bostock(D3.js 的作者)为 DOM (!) 中的画布场景图编写了 POC,您可能会觉得这很有趣。
  • 在 JSter 博客上有一篇文章建议“AtelierJS补充EaselJS(AtelierJS 实际上将自己描述为“CreateJS 的场景管理模块”)。
  • 在那篇文章中还提到Paper.js将场景图实现为核心功能,因此值得一看(实际上,它可能正是您所追求的)。
  • 还可以查看CakeJS,它被称为“用于 HTML5 画布标签的 JavaScript 场景图形库”
于 2013-08-22T23:07:57.170 回答