HTML5如何“取代”HTML5?闪光?
自 iPad 发布以来,Flash 与 HTML5 的争论再次兴起。有人认为 HTML5 有一天会取代 Adobe Flash。
我不开发在浏览器中运行的软件,所以我的(有限的)理解是:
- HTML 是一种纯文本标记语言,通过 HTTP 传递到客户端浏览器。客户端浏览器解释标记并根据标准规范呈现页面(取得了不同程度的成功)。
- Adobe Flash 是一个用于处理音频、视频、声音和光栅/矢量图形的专有框架。它需要特殊的创作工具(也许是编译器?)和可作为大多数常见浏览器的插件使用的自定义播放器。
有人可以解释一下(向这位 C/C++ 开发人员)从技术/编码的角度来看基于文本的标记语言 (HTML5) 如何可能被视为替代多媒体框架(Flash)?
请不要固执己见的争论 - 只是技术事实。
A topic of debate that's seen a resurgence since the unveiling of the iPad is the issue of Flash versus HTML5. There are those that suggest that HTML5 will one day supplant/replace Adobe Flash.
I do not develop software that runs in a browser, so my (limited) understanding is:
- HTML is a pure-text markup language that is delivered over HTTP to a client browser. The client browser interprets the markup and renders (with varying degrees of success) the page according to an standard specification.
- Adobe Flash is a propriety framework for working with audio, video, sound and raster/vector graphics. It requires special authoring tools (a compiler perhaps?) and a custom player that's available as a plug-in to most common browsers.
Could someone please explain (to this C/C++ developer) how it is possible from a technical/coding point-of-view that a text-based markup language (HTML5) could be considered a replacement to a multimedia framework (Flash)?
Please no opinionated arguments - just technical facts.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(25)
当 Steve J. 发表关于 HTML5 是未来的评论时,他没有费心解释这句话实际上指的是当今 Flash 最广泛的使用,即视频。也许他没有刻意解释这一点,以至于许多被误导的最终用户想要在 iPhone 上观看 Hulu,从而对 Flash 发泄愤怒。这正是正在发生的事情……这很烦人,我失去了对史蒂夫的尊重。
HTML5 堆栈(html、css 和 JS)不会直接替代 Flash。我开发 Flash 内容已经有 10 多年了,我在 JS 方面也很擅长。想到使用 JS 来完成 ActionScript 可以用少 50% 的代码完成同样的事情的任务,我感到有些畏缩。有些任务使用 JS 和 CSS 来实现,即使不是不可能,也是非常困难的。对于基本的动画和类似 JQuery 的功能,当然,HTML5 可以成为替代 Flash 的可行选择。但对于复杂的游戏和 RIA,我就是看不到。 Actionscript 已经发展成为一种强大的、功能齐全的语言。
另一件重要的事情是 Adobe 会定期更新 Flash 播放器,以解决可能出现的任何问题。如果 HTML5 规范成为常态并且 Flash 告别了,他们将如何更新/改进 HTML5 规范?他们不会。你必须等待 HTML6 和所有浏览器都支持它。这意味着您最终要等待 5 到 10 年。这是让我们回到 1998 年的好方法。不用了,谢谢,我现在还是继续使用 Flash。
尽管开放标准是一个有价值的目标,但我认为这并不像他们所说的那样......
我的两分钱。
我认为这里有些人是编程势利小人并且不听。我也是一名 Flash 开发新手,我不希望它消失。你知道为什么吗?因为富有创造力的人可以使用 Flash 轻松地开发我们大脑中的内容。一个喜欢画画、创造场景的人不一定喜欢写代码。键入一堆“句子”并不是绘画和动画!你所说的 HTML5 就像说毕加索和达利应该学习编程语言才能绘画。可笑,对吧?
这就是为什么人们更喜欢 Flash 而不是 HTML5。这不是自私的,它只是承认有能力创建很酷的动画网络内容的人宁愿能够创建我们自己的愿景,也不愿学习不相关的技能或依赖其他人为我们解释。
您可能不想嘲笑,而是想设计一个与 Flash 相媲美的 HTML5 视觉环境。
从技术/编码的角度来看,基于文本的标记语言 (HTML5) 怎么可能被视为多媒体框架 (Flash) 的替代品?
HTML5 是“Web 技术堆栈”的新热门名称,而不仅仅是一种“标记语言”。
它有一种编程语言(JavaScript),就像 Flash 一样;一组 API,作为通常标记为“HTML5”的工作的一部分,显着扩展了绘制图形(SVG、
与 Flash 不同,“HTML5 应用程序”由浏览器处理,而不是由专有的浏览器插件处理,这很好 - 至少对于浏览器供应商而言(请参阅 这篇博文 - 感谢 Jotham)。例如,它使浏览器供应商能够解决问题(而不是等待 Adobe)——IIRC Apple 将 Flash 列为 Mac 上所有崩溃的第一大原因。
[编辑删除“开放标准更好”的说法,我懒得支持]
它不仅仅是 HTML5,而是当浏览器完全采用它时。例如,如果没有浏览器提供的视频播放器来实际呈现视频,HTML5 标签的存在就没有任何意义(此时,希望不再需要 Flash Video) 。
标签也是如此。
此外,HTML5 的 canvas 元素(与 JS 结合)允许在浏览器中显示比以前更高级的图形。
与其说 HTML5 可以通过逐个功能匹配 Flash 来取代 Flash。更重要的是,HTML5 堆栈(包括 JavaScript 和 CSS)可用于构建同类丰富的 Web 应用程序,而以前 Flash 是唯一可行的选择。由于 HTML 有望解决 Flash 平台的一些缺点,因此未来它有可能在该领域取代 Flash。
此讨论主要围绕用于在用户端呈现应用程序的技术。它没有解决作者实际上能够轻松创建将交付给用户的内容的问题。您已经提到,Flash 与一组商业工具相关联,这些工具是由 Adobe 专门构建和营销的,旨在满足内容丰富的作者的需求。此类 HTML5 解决方案尚未得到广泛采用。对于将创作主要视为编码的开发人员来说,这并不是一个大问题,他们不会很难获得 HTML5 的吸引力(许多人已经这样做了)。对于那些没有开发人员/编码背景的作者来说,这可能是另一回事,对他们来说,HTML5 的可行性将在很大程度上取决于集成创作工具的可用性。也许几年后 Adobe Flash 工具将输出为 HTML5 而不是 SWF...
这些愚蠢的、缺乏创造力的人没有意识到 HTML5/Javascript/CSS 一开始就非常臃肿。所有这些资产仍然完全是原始文本文件。没有压缩,没有字节码优化,它永远都是这样。因此,对于游戏开发者来说,让所有资源都容易被盗并不是一种选择。 Flash 允许您以更紧凑的方式编译源代码,同时仍然能够以紧密的矢量图形方式创建动态内容。除此之外,Flash 还支持着色器、硬件加速、像素滤镜(像素弯曲器)和图层效果。直到今天,您还无法轻松简单地让 html 元素产生阴影。 HTML5 只是试图取代 Flash 作为媒体播放器,但由于 Flash 的流行是由于其一致性,因此很难推销。我对 CSS 和 Javascript 的憎恨可以从以下事实推测出来:40% 的 javascript 代码是为了浏览器兼容性,而 CSS 实现在不同的浏览器供应商上从来都不一致。在你们这些书呆子们解决这个问题之前,Flash 永远不会被取代。事实上,无论您在 HTML5 中能做什么,我们都可以在 Flash 中更快更好地完成。
我已经在 Canvas 中看过《德军总部 3D》。 它的劣势。而且很小。我们可以制作更好的具有更大窗口的 3D 引擎。打败那个?
我希望我们正在讨论 HTML5 如何取代 swf 和 flv。完全不是Flash。我是一名 Flash 开发人员(业余)。对于我这样一个更注重艺术而非脚本编程的人来说,Flash(大多数时候)相当容易使用。
如何在 HTML5 中让卡通人物在屏幕上行走?或者一些简单的事情,比如将圆形变形(补间)成正方形?当然我没有把它写成代码。我根本不擅长编程来实现这一目标。 Flash 相对简单。在您喜欢的任何应用程序(对我来说是插画家)中绘制所有图形,然后将它们与动作脚本缝合在一起。
我爱你们 Apple 和 Adobe。请提出某种妥协方案。
我怀疑它是否可以替代 Flash 所能涵盖的一切。然而,如果您浏览一下当今的网络,您会发现 Flash 广泛用于在浏览器中传送视频或音频内容。 HTML 5 中包含的一些东西,尽管现在已经被削弱,因为他们无法就任何标准编解码器达成一致。
当然,所有这些精彩的 Flash 游戏和广告不会仅仅因为 HTML 5 而消失,而且 HTML 5 无法取代它们。但它的目标是能够取代实际上可以交付内容的用途。对于矢量图形,还有 SVG,它可能会得到一些特殊处理。
这是否真的会导致视频领域 Flash 的消亡还有待观察。 HTML 5 视频编解码器问题迟早会得到解决。然而,Flash 很可能仍然是内容交付者希望更好地控制交付内容、DRM 和类似技术等的首选媒介。
许多人声称 HTML5 将消灭 Flash 和 Silverlight 等插件,但事实并非如此。
就以这个场景为例。
通过 url 加载二进制文件。为了演示,我们将使用 shapefile 格式 (.shp),其中包含坐标系中的地理多边形。
解析客户端的字节内容。
以有效的方式绘制内容。
演示:http://www.libertyvanguard.com/liberty-gis
这只是一个示例其中插件技术不会被 HTML5 取代。
HTML5 确实距离取代 Flash 或 Silverlight UI 技术还很远。问题不仅在于 HTML5 在应用程序 UI 组件中所需的数量有限,而且还不允许以无缝集成到运行时的方式创建自定义组件。
看一下 Ample SDK - JavaScript UI Framework,它的架构很大程度上继承自 Flex、Silverlight 中的架构或壁虎。它支持跨浏览器的 UI 技术之一是 XUL,可以在 CSS 中设置样式,并通过 XUL DOM 或 jQuery API 在 JavaScript 中进行编程。您还可以在框架之上创建自己的 UI 技术。
我第一次听到“HTML取代Flash”的评论来自史蒂夫·乔布斯。 (他讨厌 Flash 可能是因为它在他的 Mac 电脑上崩溃,我不确定。我认为他脱离了现实。证据就是他可笑的产品“iPad”。)
关键是它对开发人员有什么好处?答:不如Flash。然而。为什么以我有限的经验这么说呢?这就是您在 Javascript 中需要的“try...catch”兼容性代码,以便在所有浏览器中工作。真是一堆垃圾。 ActionScript/Flash 是适用于所有浏览器的一段代码/应用程序。
Flash 拥有的另一件事是图形(和非图形)开发软件工具,可以简化流程。
所以简短的回答是,ADOBE 不会让 HTML5“取代”flash,至少在短期内是这样。但如果人们为其提供足够的开发工具,特别是所见即所得的图形工具,那么它就可以与 Flash 竞争,就像 Google 开发一个易于使用的所见即所得编辑器来制作 GWT 应用程序一样。这是一个很大的假设。
一个非常明显且很少提出的更广泛的观点是,模糊引用的“闪存”术语实际上涵盖了整个 Flash 平台,其中包括 Flash IDE。
使用该技术创建复杂卡通和动画的动画师和其他艺术类型几乎完全依赖 IDE 来完成他们的工作。没有它,这是不可能的。故事结束。重要的不仅仅是语言规范级别的技术!在本例中,它还涉及 IDE 中的“支持技术”(我说的是“支持”,但 Flash IDE 在很大程度上是一种与 Flash 平台的其余部分集成的技术)。
如果有人构建了一个具有与 Flash IDE 相媲美的功能的 HTML5 IDE,那就太好了,但令我惊讶的是很少有人提出这一点。艺术家和程序员一样,都参与了这场争论,说这不关他们的事是不合理的。
因此,直接回答您的问题:当且仅当为 Flash 等多媒体框架构建了适当的 IDE 时,HTML5 才会被认为是完全合理的替代方案,甚至是替代方案,从而将其提升为多媒体框架。
在不考虑 IDE 的情况下进行论证是不现实的。如果问题是“除了手动制作的复杂动画之外,在没有 IDE 的情况下,处于完整状态的 HTML5 能否成为 Flash 的替代品?”那么答案很可能是肯定的,我们都会回家。
有趣的话题。我同意这里大多数发帖者的观点,即虽然 HTML 5 在基本多媒体演示方面取得了巨大飞跃,但它无法取代 Flash。所有在线游戏网站都是一个很好的例子。 Flash 可在除某些移动设备外的大多数浏览器上运行。
就这一点而言,我相信电池消耗是史蒂夫·乔布斯不想在 iPhone 和 iPad 上支持 Flash 的最初原因。这可能会在未来对苹果造成影响(没有双关语)。 Android 2.2 将支持闪存(但尚不清楚是否所有硬件制造商都会支持它 - 他们会对自己的电池充满信心)。
此外,看起来 Flash 10+ 将成为黑莓设备上的必然选择,包括 BB 手机和即将推出的 BB Playbook 平板电脑(顺便说一句,这个玩具有一些杀手级的规格 - 迫不及待地想在它推出时拿到手)明年)。
我敢打赌,即使在 HTML 5 支持变得普遍之后,Flash 将继续在 Web 开发中发挥重要作用。
我们目前正在开发一个LCMS,其中一个领域是一个完全所见即所得的创作工具,用于开发符合SCORM和AICC标准的培训材料,其中包含动画、视频、音频、多种类型的交互评估。该工具看起来很接近幻灯片的外观,允许用户轻松地将学习对象拖放到带有图片的幻灯片上、调整图像大小、移动图像、重叠文本、添加测试等。
该工作区目前在 Flex 中完成,并具有出色的性能,甚至 Google Docs/Presentations 都无法与该应用程序的灵活性和性能相媲美。
我想知道是否可以在不需要大量资源的情况下使用 HTML5 开发这种规模的应用程序。我们是一家小公司,拥有一小群开发人员。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
在本次讨论中,人们粗略地提到的 HTML5 是作为标记语言的 HTML、指定其呈现方式的 CSS 以及动态操作 HTML 和 CSS 的 javascript 代码的组合。
此外,HTML5不仅具有标准的文本元素,还具有可以绘制2D图形的
,以及嵌入视频的
元素(顾名思义)。
因此,在成熟的 HTML5 实现中,您可以在不使用 Flash 的情况下实现动态网站。一个例子是 YouTube 的 HTML5 版本,最近作为 Safari/Chrome 用户的测试版推出,请参阅此处。另一个是 JavaScript + HTML 中的 NES 模拟器。 (嗯,后者并不真正关心 HTML5...它使用
。)
What people loosely refer to HTML5 in the context of this discussion is the combination of HTML as a markup language, CSS which specifies how it is rendered, and the javascript code which manipulates the HTML and CSS dynamically.
Furthermore, HTML5 not only has the standard text elements, but also
<canvas>
on which 2d graphics can be drawn, and<video>
elements which embeds the video (as the name suggests).So, in a full-fledged implementation of HTML5, you can implement dynamic web sites without using Flash. An example is the HTML5 version of Youtube, recently introduced as beta for Safari/Chrome users, see here. Another is an NES emulator in javascript + HTML. (Well the latter does not really concern HTML5... it uses
<canvas>
.)