我即将开始一个房间设计师项目,该项目将允许您将墙壁/门/家具等拖放到网格上以设计房间。我已经决定拖放透明PNG并绝对定位它们是行不通的,我不想使用flash,所以它是Canvas或SVG。
我:我以前从未使用过 Canvas 或 SVG,但在 javascript 和 jQuery 方面我非常胜任(我对 OO Javascript、anonymouse 函数、闭包、回调等很满意)并且我读过 Douglas Crockford 的“Javascript:好的部分”并理解其中的大部分内容;-)
项目- 需要从组件窗口拖放到设计器窗口,需要在平板电脑(而不是手机)上工作,因此需要关注触摸事件。还需要工具提示、对象分层等。如果我确实使用矢量图形,那么它们无论如何都需要有位图纹理(例如,墙板可能有壁纸纹理)
到目前为止,我已经阅读了一本关于 Canvas 的书,并得出以下结论......
帆布
- 快速地
- 在画布上重绘对象相当简单
- 还不知道鼠标事件
- EaselJS、FabricJS 和 KinectJS 等库看起来不错。
SVG
- 可扩展(更容易构建缩放功能)
- 易于从 Illustrator 之类的工具导入图形。
- 绘图库看起来不那么丰富/好。
- 不知道鼠标/触摸事件。
所以,我需要尽快弄清楚如何做到这一点。现在我倾向于 Canvas 和一个好的库,因为我相信其中一些可以导入 SVG 以实现可伸缩性。
任何有关前进方向的建议将不胜感激。