HTML canvas JavaScript库和框架中的艺术现状是什么?

我目前正在研究在新的HTML 5应用程序中使用canvas的选项,并且想知道HTML canvas JavaScript库和框架中的艺术现状是什么?

特别是,有框架支持游戏开发所需的东西 – 复杂的animation,pipe理场景图,处理事件和用户交互?

也愿意考虑商业和开源产品。

Fabric.js截图

我一直在研究fabric.js – 一个canvas库,通过处理事件和用户交互来帮助处理canvas上的对象。 它还没有发布,但看看一个简单的预览演示 。

您也可以在这个devise编辑器中看到它的实际操作。

编辑:该项目现在在github上 (麻省理工学院许可证下开源)

要开始,请查看:

  • 演示 (简单和复杂,用代码来显示它们是如何完成的)
  • FalsyValues ( 另一个在BK.js )的Fabric.js演示文稿
  • github上的Wiki (包括FAQ )
  • 文档
  • Google小组 (在那里问任何问题)
  • Twitter上的Fabric.js (或通过twitter发送简短的问题)
  • Fabric.js简介:第1部分 (ScriptJunkie上的文章)
  • Fabric.js简介:第2部分 (ScriptJunkie上的文章)

Fabric如何与其他Javascriptcanvas库进行比较? 这是一个比较表 。

我很惊讶没有人提到过WebGL ,以及构build它的框架。 我认为它在3D canvas上的加速graphics和复杂的animation在HTML canvas / javascript上的最新技术水平。

WebGL是基于OpenGL ES 2.0的低级3DgraphicsAPI的跨平台,免版税的Web标准,通过HTML5 Canvas元素作为文档对象模型接口公开。 …

WebGL为网页带来了无插件的3D,直接在浏览器中实现。 主要浏览器厂商Apple(Safari),Google(Chrome),Mozilla(Firefox)和Opera(Opera)是WebGL工作组的成员。

WebGL对GPU加速graphics的支持非常稳固。 查看这些GLSL 着色器 演示 。 :-)并将ChemDoodle作为用户交互的例子。

我一直在使用Google的O3D框架来pipe理场景图,并使用WebGL进行渲染(使用自己的插件)。 O3D是一项正在进行的工作,其文档并不完全是最新的,但正在积极开发之中,并且有一些很好的演示 。 3D Pool可能是你的胡同最多的。 Google开发人员对讨论组中的问题非常敏感。

WebGL上还有许多其他的框架。 看到这里 。 提到游戏开发和场景图的包括Copperlicht,SceneJS,X3DOM。

WebGL运行在最近几个浏览器的开发版本,但不是IE。 我一直在使用Firefox(“Minefield”)和Chromium,效果很好。 您将需要其中的一个来运行上述演示。

但是,如果您的要求是HTML5 canvas / js之外必须没有依赖关系,那么WebGL可能不是正确的select。 它看起来不像IE将很快支持它 。

更新:在提出了很多阻力之后,MS 决定在IE 11中支持WebGL 。

先生 , 先生。 Doob ,是一个非常棒的3D引擎,包括场景图(包括软件和WebGL /硬件加速版本),阴影,粒子,皮肤animation(我认为)和灯光效果。 检查一下,他是一个超级天才的家伙。

我还要补充一点,您需要使用最新的Google Chrome浏览器或同等浏览器才能查看大部分演示,我的最爱之一是: http : //mrdoob.github.com/three.js/examples/webgl_materials_cars.html

KineticJS是一个新兴的图书馆,拥有创造和animationcanvas上的单个“图层”以获得高性能。

http://www.kineticjs.com/

CAKE.js不再被维护,但是是一个相当强大的框架 – http://code.google.com/p/cakejs/

这里演示 – http://glimr.rubyforge.org/cake/canvas.html,http://glimr.rubyforge.org/cake/missile_fleet.html

看看处理 js框架。 另外,即将推出的mootools 2.0版也有与canvas一起工作的艺术项目

拉斐尔似乎是一个不错的canvas库; 它基于SVG(或Internet Explorer中的基于VML),因此支持大量的用户input事件。 这是相当小的(60KB gzipped),所以不是太大的依赖。
它似乎也有一个很好的tweener: http ://raphaeljs.com/reference.html#animate(见这里和这里的例子)。

有关它可以做的一个例子,看看这个聪明的小演示 。

希望这可以帮助!

我发现两个图书馆是非常有竞争力的,然后更好的织物。

Kinetic.js和easel.js都有非常好的事件处理,分组和整体抽象。 在这两方面你都会发现很多爱。 画架似乎有更多的图像导向和过滤。

面料的事件处理比其中的任何一个都差得多 – 基本上它将整个canvas视为一个大事件打包程序,并告诉你什么时候“Something”被点击了。 它不会将事件附加到单独的形状或形状组。

有一个有趣的图书馆 ,旨在改善一些使用Javascript的作者David Flanagan的作品canto.js的基本原理:Javascript:The Definitive Guide 。

另外,年轻但不错的Javascript框架,它(复杂的animation,pipe理场景图,处理事件和用户交互)都是关于它的 – jCanvaScript 。 可能是,除了“pipe理现场图”。

与bHive合作生成图表和移动网站标题,似乎令人印象深刻,function强大,不像其他人似乎正在开发。 Adobe Edge也是值得的,尽pipe严格来说不是Canvas。

http://www.bhivecanvas.com

http://labs.adobe.com/technologies/edge/

Aves Engine真的很棒: http : //www.dextrose.com/en/projects/aves-engine

此外,秋叶原似乎不错: http : //www.kesiev.com/akihabara/

如果你想使用JavaScript,Dojo是一个很好的select。 它具有非常强大的紧凑的跨平台(SVG,VML,Canvas,Silverlight)vectorgraphicsAPI。 你可以在dojo.gfx和dojox.gfx中find它。

我们用这个来构build一个交互式的物理教师,允许学生绘制vector,椭圆等(甚至追加图像),并对它们进行各种变换。 你可以看看我们在http://gideon.eas.asu.edu/web-ui/login.html上做了什么; – 只要用任何用户名login即可。

我看了一下fabric.js和dojox.drawing做了很多相同的事情。 如果你看看工具包中的testing(一旦你已经知道了它的dojox / drawing / tests /),你会发现从vectorgraphics到图像到编程创build的阴影的例子。

作为游戏引擎,秋叶原给我留下了深刻的印象。 它有神奇的教程和apiforms的文档。 我甚至在一些留言板上看到了一个秋叶原2的发布。 不幸的是,所有的谈话都是大约一年或更长的时间。 我真的希望这个引擎还在开发中。

我刚刚发布了一个新的绘图和补间库的第一次迭代,面向具有AS3 / Flash开发背景的人们。 虽然我的lib还不支持复杂的绘图path或graphics,但我希望能够帮助人们以熟悉的方式快速绘制和制作基本图元。

反馈和意见是受欢迎的。 http://www.quietless.com/kitchen/introducing-js3/