HTML5如何“替代”Flash?

142
自iPad发布以来,Flash与HTML5的问题一直是争论的焦点。有人认为HTML5有朝一日将取代Adobe Flash。
我不开发在浏览器中运行的软件,所以我的理解很有限:
- HTML是一种纯文本标记语言,通过HTTP传递到客户端浏览器。客户端浏览器根据标准规范解析标记并呈现页面(成功的程度因浏览器而异)。 - Adobe Flash是一个专有框架,用于处理音频、视频、声音和光栅/矢量图形。它需要特殊的作者工具(例如编译器)和一个自定义播放器,该播放器作为插件提供给大多数常见浏览器使用。
请问(对于这个C/C++开发者),从技术/编码角度来看,基于文本的标记语言(HTML5)如何能够被认为是多媒体框架(Flash)的替代品?
请只提供技术事实,不要提供意见性的论证。

6
请注意,HTML 已经不像你描述的那样静态了相当长一段时间。虽然 HTML5 将其提升到了一个新的水平,但是“普通”的 HTML 已经可以使用 CSS+JS 实现一些有趣的效果了。 - Joachim Sauer
1
多年来,他们一直在说这个问题,并试图“标准化”网络标准多年,但似乎没有什么改变。Flash(和Silverlight)解决了跨浏览器不兼容问题,比其他任何东西都要好。(虽然不是跨平台,但标准的跨浏览器平台肯定比没有标准平台更好。)与此同时,竞争浏览器的数量似乎正在增加,使通过供应商开发纪律(哈)进行标准化的可能性更小。像Flash或Silverlight这样的向后兼容的软件虚拟机方法只是有效。 - Manius
1
与其试图消除插件,"HTML5人"不如致力于标准化和改进插件支持,这真是遗憾。如果浏览器能够转变为一个"平台交付系统"而不是"内容交付系统",我们就可以拥有许多竞争的(对用户来说完全透明和自动安装的)Web"平台",例如Flash、Silverlight、JavaFX以及各种"传统Web" HTML渲染器。这将通过将平台置于单个"平台开发者"的控制下,立即解决所有跨浏览器和向后兼容性问题。哦,唉... - Manius
术语HTML5通常指具有HTML5 JavaScript API(包括数据库、网络、消息传递、存储)以及使用CSS和DOM操作的图形动画和效果的Web应用程序,更不用说像canvas、svg、sprites、图片转换GUI控件等技术了。 - eckes
2
一个“毫无建设性”的问题获得了137个赞……讽刺至极。 - Mike
一种新的语言和API本身无法取代Flash,因为这忽略了对作者软件的需求。OP问题的答案应该是“通过Adobe将Adobe Flash重新品牌为更通用的交互式媒体创作软件,并添加支持构建HTML5项目的功能。”,这就是Adobe Animate所发生的事情。请参阅2015年底的此博客文章:https://theblog.adobe.com/welcome-adobe-animate-cc-a-new-era-for-flash-professional/像Newgrounds这样的创意社区通过支持这一点而继续存在。 - Zyl
25个回答

3
我怀疑它并不是要替代Flash所能包含的所有内容。然而,如果你现在浏览web,你会发现Flash被广泛用于在浏览器中传递视频或音频内容。虽然HTML 5也包含了这个功能,但是因为他们不能达成任何标准编解码器的共识,所以这个功能现在还有些局限。
当然,所有那些漂亮的Flash游戏和广告都不会因为HTML 5的出现而消失,而且HTML 5也无法替代它们。但是HTML 5的目标是取代那些实际上可以传递内容的用途。对于矢量图形,也有SVG可以得到一些特殊处理。
这是否真的意味着Flash将死于视频呢,还有待观察。 HTML 5视频编解码器问题可能早晚会得到解决。 然而,Flash很可能仍然是媒介选择,其中内容提供者将想要对将要交付的内容拥有更多控制权,例如DRM等技术。

3
现代浏览器支持HTML5标准,可以在浏览器内直接播放支持的媒体文件,无需第三方插件。您可以自己尝试。Safari和Google Chrome的最新版本(Firefox 3.6也是如此)可以直接在HTML5页面中播放<video>标签。YouTube现在支持HTML5。这就是为什么iPad可以在使用完全符合HTML5标准的Safari浏览器时播放视频,而无需Adobe Flash插件的原因。

苹果在其设备上允许媒体协议处理的选择与HTML5无关。 - austin cheney
HTML5是一种技术,使浏览器能够直接播放视频,而无需插件来完成。HTML4和XHTML1.1尚未具备此功能,这就是为什么需要Adobe Flash在浏览器中播放视频的原因。HTML5消除了插件的需求。 - Donny Kurnia

3

结合用于跟踪GUI事件和编写新HTML 5元素的JavaScript,您可以获得Flash提供的许多功能。

HTML 5有许多新元素。其中之一称为Canvas。使用它,您可以在屏幕上绘制任何想要的内容,在其边界内。您可以使用JavaScript进行绘制,并且您也可以使用JavaScript捕获任何鼠标单击等操作。如果您习惯于桌面上的GUI工具包(如Tk、GTK),则可以将这些新元素类比于这些GUI工具包的某些小部件。

请查看thejit,以查看HTML 5中图形的示例。


3
Flash操作具有时间轴、舞台和场景,并允许将电影叠加在一起。它还具有洋葱皮、补间动画和其他矢量艺术工具,通过逐帧动画使卡通动画制作变得容易。您可以完成所有这些操作,然后使用非常少的代码/动作脚本来控制它。相比之下,HTML、JAVA和CSS并不像Flash那样对作者来说是一种艺术体验,而且需要更多的编码才能达到类似的效果——Flash更快、更容易、更用户友好。我怀疑Flash不会很快消失。

1
使用HTML5/JS中的<canvas><video>,您也可以做各种事情。在Flash中能做到这一点吗?http://www.craftymind.com/factory/html5video/CanvasVideo.html - TRiG
2
可爱的视频:P 这是展示 HTML5 功能强大的很棒的例子。Flash里有一些你可以做到的事情,但在HTML5中也有一些不能做到的。 - helloworlder

3

我真心希望HTML5能够胜任工作,至少在视频方面不用完全取代flash。尽管Flash视频文件很小,但它却会占用过多的处理器资源。如果你没有启用Flashblock,可以试着打开youtube并查看任务管理器。现在你可以看到Firefox进程在访问类似于Youtube这样的flash驱动网站时突然暴增的情况。我的建议是安装Flashblock插件。


3

HTML5并不能完全取代Flash或Silverlight UI技术。问题不仅在于HTML5在应用程序UI组件方面的数量受限,而且还在于它不允许以无缝方式创建自定义组件集成到运行时。

看看Ample SDK - JavaScript UI Framework,它的架构很大程度上继承了Flex、Silverlight或Gecko中的内容。它可以跨浏览器启用XUL UI技术,可用CSS进行样式设置,并可使用XUL DOM或jQuery API进行编程。您还可以在该框架的基础上创建自己的UI技术。


3
很多人声称HTML5将取代Flash和Silverlight等插件,但事实并非如此。例如,考虑以下情况:通过url加载二进制文件。为了演示,我们将使用shapefile格式(.shp),其中包含以坐标系表示的地理多边形。在客户端解析字节内容。以高效的方式绘制内容。演示:http://www.libertyvanguard.com/liberty-gis。这只是一个例子,插件技术不会被HTML5所替代。

3
我认为HTML5将取代大部分Flash/Flex,但由于canvas很酷炫,后者可能会继续作为另一种分支存在。新的库也会出现。但只要JS仍然是单线程,它在速度上就不会那么快,尤其是对于游戏来说,假设Adobe不放弃的话。

2
我第一次听到“HTML取代Flash”的评论是来自Steve Jobs。他可能讨厌Flash,因为它在他的Mac电脑上崩溃了,我不确定。我认为他已经跟不上时代了,证据就是他荒谬的产品“iPad”。
重点是对开发人员有多么好?答案是:还不如Flash。为什么我会这样说呢?因为你需要在Javascript中编写所有浏览器兼容性代码。真是一堆垃圾。ActionScript/Flash只需一种代码/应用程序即可适用于所有浏览器。
Flash的另一个优点是图形(和非图形)开发软件工具,可以简化流程。
所以,简短的回答是,至少在短期内,Adobe不会让HTML5“取代”Flash。但如果人们制作足够的开发工具,特别是所见即所得的图形工具,例如Google开发一个易于使用的WYSIWYG编辑器来制作GWT应用程序,那么它可以与Flash竞争。但这是一个大的假设。

2

有可能基于文本的标记语言(HTML5)可以取代多媒体框架(Flash)。

解决方案很简单,只需将框架移动到浏览器中并成为开放标准。不仅是多媒体框架,浏览器还可以包含许多其他属于操作系统的东西。

有可能最终浏览器将成为操作系统(用户模式)。当前操作系统将被限制在内核模式下,主要处理硬件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接