Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        6年前关闭。
                                                                                            
                
        
我正在寻找用于创建2D图形的JavaScript框架,例如Raphael或Fabric。我喜欢这两个API,但是缺少一种使用面向对象的方式来创建具有复合模式的场景图。

有人知道这样的框架吗?

为了弄清楚我所说的复合模式是什么意思:我想像在swt或swing这样的GUI框架中完成将绘制的对象排列在树上(我认为Java3D也使用此方法)。
那里你有一个


作为所有已绘制对象的父类的组件。它描述了所有绘制对象的常见行为和属性。
从Component扩展并包含Components列表的容器。因此,Container的行为就像一个Component一样,并将对Container的所有操作委托给它的所有子组件。


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

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

最佳答案

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

某些JS框架(或库)提供了周到的解决方案和结构化的工作流,例如sceneJS(尽管它本质上是3D引擎)或D3.js,从而消除了实现此类模式的需要。

您尚未详细说明复合模式如何帮助创建场景图,因此我在这里无法为您提供帮助,但以下是一些人们如何生活和讲述故事的示例:


Mike Bostock(D3.js的作者)写了a POC for a canvas scenegraph in the DOM(!),您可能会发现它很有趣。
在JSter博客上,有a post建议“用EaselJS补充AtelierJS”(AtelierJS实际上将自己描述为“ CreateJS的场景管理模块”)。
在那篇文章中还提到了Paper.js将景图实现为核心功能,因此值得一看(实际上,可能正是您所追求的)。
还要检查CakeJS,它被称为“ HTML5 canvas标签的JavaScript场景图形库”。

09-25 20:02