[编程开发] HTML5 真能代替 Flash 吗?

[复制链接]
bands 发表于 2023-10-3 19:49:46|来自:北京 | 显示全部楼层 |阅读模式
HTML5 真能代替 Flash 吗?
全部回复5 显示全部楼层
yyp 发表于 2023-10-3 19:50:04|来自:北京 | 显示全部楼层
2022年被知乎推荐此问答。
有点恍如隔世。
weekeight 发表于 2023-10-3 19:50:25|来自:北京 | 显示全部楼层
目前,大多数电脑浏览器已经停用Flash插件,Flash在网页称霸的时代彻底结束了,不过并不是意味着被H5替代了,应该是使用者习惯的改变造成的,毕竟现在很多人都用手机浏览内容,而2015年开始,移动端的flash插件就在乔帮主的苹果禁用声明下开始停用了。
以下为原答案:
首先要了解这两者能干什么,运行在什么环境。
先说h5,运行在浏览器,制作交互式网页。
flash,可以制作二维动画,手机游戏安卓苹果移动设备都支持,桌面程序,多点触摸程序等等。
很明显,它们的用处大多数没有交集,不存在替代与否的问题。只能说,网页中的内容已经变为h5的应用领域了。
ibo4198 发表于 2023-10-3 19:51:00|来自:北京 | 显示全部楼层
最近做HTML5图形组件优化,实现基于Canvas的拓扑图,上万图元流畅操作,可导出两亿像素的大图,图形渲染能力已经将flex, silverlight抛到脑后了,ActionScript效率低就不说了,现在连flash拿手的2D图形也落了下风,被替代是自然的事
下面是六千多图元时的弹簧布局效果,背后界面是十万图元拓扑图渲染
优酷视频:

基于HTML5的拓扑图 - 十万图元流畅展示
http://v.youku.com/v_show/id_XNzI1NDc2NzQ0.html


墨香 发表于 2023-10-3 19:51:29|来自:北京 | 显示全部楼层
其实讨论能不能彻底代替 感觉意义不大,很难说吧。  
可以肯定的是:HTML5市场份额会越来越大,FLASH则会越来越少。   
不过 Flex 在 AIR 上的应用应该还是可以走很久的。UI 比原生的 Windows 控件好看很多。  
自身的库支持很多,比如内置SQLite Driver、图片处理API、视频音频播放、而且动画效果也很好。
a669091781 发表于 2023-10-3 19:52:18|来自:北京 | 显示全部楼层
从长远来看,HTML5会挤占Flash大部分的市场,但Flash主要是在游戏开发方面还是会有一块生存空间。   

  • 功能上:现代浏览器正在迅速地拓展javascript的应用范围: 原生的视频/音频API,2D绘图有Canvas,3D有WebGL,即时通信有WebSockets,还有Local Storage。正在讨论并有可能会在将来加入标准的API还有Geolocation(地理位置),File API(更强大的上/下传),WebStorage(加强版cookie),甚至还有本地文件处理能力等。Flash现阶段在功能已经没有太大优势可言,作为流媒体解决方案暂时还有一席之地,但浏览器原生API普及之后被取代是迟早的事情。在数据存储和本地操作方面,由于是一个插件,更是受到各种安全性的制约。 (这里基于web,不讨论Air)
  • 性能上:曾经Flash在整体性能上具有明显优势,AS3是编译语言,在虚拟机上运行效率比当年的javascript要快很多。但是现在各大浏览器都注重了javascript引擎的优化,尤其是Chrome的V8,单纯在代码运行的效率上已经和AS3并驾齐驱。但是在2D动画上,Flash的优势依然明显,即使是在Chrome上,平均fps依然要比canvas高出一截。另外Flash本身的IDE对矢量图的支持也是Canvas所不具备的。从这一点来看,Flash在依赖大量2D图像的游戏上仍然保持着绝对优势。3D方面,Flash Player通过Molehill API获得了GPU支持,而WebGL也是直接调用GPU的,性能上没有太大差别,主要是开发上API和第三方3D引擎的比较,这方面Flash显然更为成熟,但js正迎头赶上。
  • 语言上:AS3本身是从ECMAScript(也就是javascript的ISO标准的正式名称)拓展出来的,但是提供了更完善的类型支持,风格上变得更接近于java,在复杂的OO项目上要比js更容易管理。Javascript本身是一个很独特的语言,兼具OOP, imperative和functional的风格,但是对类型的支持很弱(prototype-based),这使得用js开发复杂的项目比较麻烦,但是近来随着js的升温,各种针对js的design pattern和模块化js库相继出现,借助它们也可以有效的加强js代码的结构性。另外需要指出的是js现在的应用范围已经远远超越了浏览器内部,Node.js提供了一个基于V8引擎的js运行环境,使得js可以用来作为服务器语言,也可以用来写各种命令行工具。其他也有如MongoDB就是使用js的数据库。javascript的未来应用前景要比AS3广泛的多。
  • 平台支持上:Flash是嵌入型的,只要能运行,那么在它本身的虚拟机内就不存在兼容性的问题,只存在版本的问题;而Flash Player的版本更新adopt rate向来是非常高的。这一点上对开发者而言少了很多麻烦。HTML5最令人头痛的就是参差不齐的浏览器兼容性,这也是现阶段HTML5最大的硬伤。但是HTML5在平台上也有一个明显优势,那就是越来越重要的移动平台上,HTML5的支持情况要好很多很多(iOS支持几乎所有的HTML5 API和CSS3属性,而大多数移动浏览器都是HTML5支持良好的webkit内核),相比之下Flash在iOS上直接出局,也是一个硬伤。从长远来看,HTML5还是绝对赢家,因为浏览器支持度只会越来越好,而移动平台上Flash已经没有竞争力,Adobe最近已经宣布停止了移动平台上Flash Player的继续开发。
  • 额外一点:在相当多的大型企业内部,都有很多昂贵的内部专用的网络应用,因为开发年代久远,都是针对IE6开发的,一旦不用IE6就要出问题。更新浏览器意味着要替换这些应用,耗费会很大,加上这些企业的管理层不懂技术,往往不愿意这么做。而开发新应用的时候,开发者就必须要针对IE6开发,这就给了Flex应用一个独特的生存空间:在IE6里也可以提供丰富的界面和复杂的功能要求。不过这一点随着时间的推移,迟早也是要不成立的。

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则