好问题.我一直在使用< canvas>几年,我也是一名前Flash开发人员.
我不认为你错过了什么.嗯,< canvas>,你知道,它必须看起来比Flash更复杂:). Flash是一种客户端工具.它提供了一个非常棒的GUI,大量的视觉和即时功能,并允许用户有时编写动画而无需一行代码(actionscript).另一方面,使用特定的HTML5标签,您可以做很多Flash技术更容易做到的事情.但是使用它有几个好处,例如:
>它是跨浏览器(让我们假设IE9将具有完全的跨浏览器兼容性 – 顺便说一下,在IE< 9中有写入vml代替画布的excanvas lib)
>您无需下载插件即可查看
>它不会“超载”DOM
>您可以在库中包装一些逻辑模式(绘制线条,绘制形状,动画内容)以使其更易于使用.
>一旦你知道它是如何工作的,你就可以设计和制作出色的平滑轻巧的小工具/图表/动画
>你没有必要付钱使用它:)
>等
顺便说一句,Flash有一个非常不同的目标:它允许用户在特定平台内构建所有内容,而无需完全集成到浏览器中.它是一种特殊的(当然非常棒的)技术,包含在浏览器中,主要范围是多媒体和无限种类的动画.
画布的目标完全不同.这是一种通过该标签在浏览器内,特定页面内获取形状,动画等的“新方法”.请记住,您必须编写可以在2d和3d上下文中呈现内容的JS代码(不是太好了???:D)
附:看看我们(我和我的同事@ work)为大学的软件工程课程提出的这两个画布项目:
AjaxDraw,完整< canvas>基于painter,它导出/导入svg文件
SketchYourSite,由< canvas>表示的项目分子