预绘制拉斐尔屏幕,将它们保存到文件并在运行时加载
Pre-Drawing Raphael screens, save them to file and load at runtime
我是Raphael的新手,想做一些关于如何构建我的应用程序的基本问题:
我需要在可视化图形编辑器上绘制模型并将它们保存到文件中(我称之为屏幕(。在运行时,我需要加载这些屏幕并使用 Ajax 从服务器数据对它们进行动画处理。
使用 SVG,我可以使用以下简单命令加载数据:
<object id="svgobject" type="image/svg+xml" data=".'svg'svgfilename.svg"></object>
此外,在SVG上,我们可以使用一些图形可视化编辑器,这就是我们构建屏幕所需的全部内容。其余的如果javascript代码获取元素ID并在运行时基于ajax调用更改其属性以获取服务器数据。
由于旧浏览器不支持 SVG,一个自然的选择是选择 Raphael,但我不知道是否有支持拉斐尔脚本语言的可视化图形编辑器以及如何在运行时保存/加载这些脚本。
那么,可视化编辑我的模型,将它们保存到文件中并使用Raphael实时加载的最佳方法是什么?
Ian 的答案是一个解决方案。另一种方法是将SVG文档转换为Raphael可以理解的数据结构。
对于相对简单的SVG图像,您可以使用svg2path。它将SVG文件(或来自URL的svg(转换为可以加载到Raphael中的路径。从文档中,在命令行上运行以下命令:
svg2path some.svg
生成一个名为 some.path
的路径文件,该文件可以在 Raphael 中加载(大概使用 paper.path()
方法(。
它在github和npm上可用。
你可以使用像 https://github.com/wout/raphael-svg-import 或 https://github.com/jspies/raphael.serialize https://github.com/crccheck/raphael-svg-import-classic 这样的插件来帮助你开始。我认为你可能需要做一些额外的工作来应对团体和拉斐尔。
编辑澄清一下,我不确定您的其他评论中您所说的图形编辑器中的拉斐尔模式是什么意思。您可以将图形作为直接的SVG导入。我不确定为什么需要支持拉斐尔脚本。
VectorEditorJS
对你来说是一个很好的起点。查看editor.js
以在其上构建或重建自己的功能。 Here's
演示。
编辑
SVGEdit
演示具有将矢量保存为 svg 的代码。您可以查看代码。
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 使用Bootstrap将JSON文件加载到表中
- 将组合JSON文件加载到谷歌地图
- 将文本文件加载到javascript中
- 使用JavaScript将压缩文本文件加载到字符串中
- AngularJS:如何使用ng-include将javascript文件加载到部分中
- 使用jquery将html文件加载到html中,用于离线/本地项目
- 将php文件加载到弹出窗口中,并将php变量发布到该弹出窗口中(使用onclick)
- 如何使用node.js将不同的json文件加载到不同的json对象中
- 将变量从服务器上的外部文件加载到 HTML 文档中
- 节点 - 将 JSON 文件加载到代码中
- 如何使用 JavaScript/jQuery 将 XML 文件加载到 JSP/HTML 页面
- 如何将json从文件加载到D3api
- 将csv文件加载到d3中,而不发送到服务器
- 如何在ReactNative项目中将本地文本文件加载到字符串变量中
- 将更改从文本文件加载到HTML中
- 将JSON文件加载到ExtJS JSONPStore时出现语法错误
- 如何通过HTTP将HTML文件加载到字符串中以在JavaScript中使用
- 如何在 JavaScript 中将文件加载到字节数组中
- 如何将外部HTML文件加载到Javascript文档对象中