文章来源

二者之间的竞争会演变成为一场“战争”吗?(现在甚至出现了可以把Flash转成Javascript/HTML5的工具)

首先需要弄清楚二者之间最主要的区别,HTML 是一种语言(超文本标记语言 – HyperText Markup Language),而 Flash 是 Adobe(其收购了Macromedia)公司的一个浏览器插件(Plugin)。HTML5 目前还是 W3.org 规范中一个草案,这意味着其还没有最终定案,希望到 2012 年这项工作能够完成。

以下是二者各自的一些特点:

HTML5

这个新的技术更为易学和易用,比较 .FLA 和 .SWF 文件更容易编辑。并且基本上过去所有由 Flash 才能制作的动画效果都能够使用 JS + HTML5 + CSS 3 来完成,不过工作量可能会更大一些,不仅文件尺寸会增大,性能方面也会有影响。

以前为 Web 表单设定风格我们一定需要使用到 JavaScript, 但是 HTML5 中的 contenteditable 属性让我们可以做得更多。一些新的输入类型(Types of Inputs)也被加入到 HTML5 中,如:电子邮件,数字,值范围等等。

用户不仅仅需要一个支持 HTML5 的浏览器,还需要 CCS 3 和新的 JavaScript 引擎的支持。

免费(不包括第三方字体和音频视频等等)

更好地移动设备支持(HTML5 正在被运用于 iPhone,iPod,iPad 和 Android 应用的开发)

拖拽,事实上这不是 HTML5 的一部分,但是在新版本的 GMail 中,从桌面拖拽文件到浏览器能够用 HTML5 很好地实现。对于 Flash 我不知道这是否可以实现?

Flash

文件经过压缩,所以文件尺寸会比 HTML5 + CSS + JavaScript + 图像 + 其他 小。

硬件优化

需要安装 Flash 插件, Android 2.2(代号 FroYo)同样支持 Flash 插件。

Adobe 在它的 Creative Suite 5 中包含了 Flash Builder 4.0。

也许对很多人来说,相对于 HTML + JavaScript + CSS,Flash 应用 更难于“破解”。

以下是一些 Flash 能够实现而 HTML5 + JavaScript + CSS 3 不能的功能:

  • 增强现实(Augmented Reality)
  • 3D
  • 真正的面向对象,而非原型(Prototyping)
  • 对麦克风和摄像头的支持(事实上 HTML5 已经宣布要提供这些支持)
  • 混色模式(如:渐进色,重叠色等等)
  • Action Message Format (AMF)
  • 二进制数据(Binary Data)
  • 位图数据(BitMapData,HTML5 的画布 Canvas 和矢量标记语言 VML 可以实现近似的功能)
  • 图形处理器的利用(Use of GPU)

结论

HTML5 是一项新技术,很多人会想要尝试它,而 Flash 业已存在很久,并且还将会有很长的生命周期。HTML5 短期内无法完全替代 Flash,而 Flash 可以作为 HTML5 的一个很好的补充。

HTML5 相关的一些链接