为什么使用HTML5 Canvas创建内容比使用Flash创作要复杂得多?

Vic*_*axy 7 flash html5 canvas

我已经做了几个月的Flash,我喜欢它.我可以轻松地使用矩形工具绘制矩形,并在几秒钟内完成形状/动画补间.

现在有很多人在谈论HTML5与Flash,我今天看了一下HTML5 Canvas.令我惊讶的是,我看到了一大堆"代码".它太复杂了,他们需要做很多调用(填充,描边,移动,关闭路径等......)来制作一个简单的形状.甚至几十行代码与javascript混合做一个简单的运动???

我错过了什么吗?使用HTML5 Canvas比Flash更加复杂.

ste*_*ecb 13

好问题.我已经工作了<canvas>几年,我也是一名前Flash开发人员.

我不认为你错过了什么.嗯,<canvas>你知道,它必须看起来比Flash更复杂:).Flash是一种客户端工具.它提供了一个非常棒的GUI,大量的视觉和即时功能,并允许用户有时编写动画而无需一行代码(actionscript).另一方面,使用特定的HTML5标签,您可以做很多Flash技术更容易做到的事情.但是使用它有几个好处,例如:

  • 它是跨浏览器(让我们假设IE9会有完全的跨浏览器兼容性 - 顺便说一下,有一个excanvas lib在IE <9中用vml代替canvas)
  • 您无需下载插件即可查看
  • 它不会"过载"DOM
  • 您可以在库中包含一些逻辑模式(绘制线条,绘制形状,动画内容)以使其更易于使用.
  • 一旦你知道它是如何工作的,你就可以设计和制作出色的平滑轻巧的小工具/图表/动画
  • 你没有必要付钱使用它:)
  • 等等

顺便说一句,Flash有一个非常不同的目标:它允许用户在特定平台内构建所有内容,而无需完全集成到浏览器中.它是一种特殊的(当然非常棒的)技术,包含在浏览器中,主要范围是多媒体和无限种类的动画.

画布的目标完全不同.这是一种通过该标签在浏览器内,特定页面内获取形状,动画等的"新方法".请记住,你必须编写可以在2d和3d上下文中呈现内容的JS代码(不是太好了???:D)

Ps看看我们(我和我的同事@ work)为大学的软件工程课程提出的这两个画布项目:

AjaxDraw,完全<canvas>基于画家,它导出/导入svg文件

SketchYourSite,由<canvas>元素表示的项目