HTML5如何"取代"Flash?

Mik*_*kes 139 flash markup html5 web-standards

自推出iPad以来,一场争论的焦点是Flash与HTML5的问题.有些人认为HTML5有朝一日会取代/取代Adobe Flash.

我不开发在浏览器中运行的软件,所以我的(有限的)理解是:

  • HTML是一种纯文本标记语言,通过HTTP传递到客户端浏览器.客户端浏览器根据标准规范解释标记并呈现(具有不同程度的成功)页面.
  • Adobe Flash是一个适用于处理音频,视频,声音和光栅/矢量图形的框架.它需要特殊的创作工具(可能是编译器?)和自定义播放器,它可以作为大多数常见浏览器的插件.

有人可以解释(对于这个C/C++开发人员)从技术/编码的角度来看,基于文本的标记语言(HTML5)可以被视为多媒体框架(Flash)的替代品吗?

请不要发表自己的观点 - 只是技术事实.

Yuj*_*uji 85

在本讨论的上下文中人们松散地引用HTML5的是HTML作为标记语言的组合,CSS指定它的呈现方式,以及动态操作HTML和CSS的javascript代码.

此外,HTML5不仅具有标准文本元素,还<canvas>可以绘制2d图形,以及<video>嵌入视频的元素(顾名思义).

因此,在完整的HTML5实现中,您可以在不使用Flash的情况下实现动态网站.一个例子是Youtube的HTML5版本,最近作为Safari/Chrome用户的测试版推出,请参见此处.另一个是javascript + HTML 的NES模拟器.(后者并不真正关注HTML5 ......它使用<canvas>.)

  • processing.js也是canvas标签的一个有趣的应用程序. (2认同)

小智 67

当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.

尽管开放标准是一个有价值的目标,但我并不认为这种方式正如他们所说的那样......

我的两分钱.

  • ActionScript基于与JavaScript完全相同的ECMA/ISO规范.虽然有一些库提供有用和独特的功能(例如绑定到TCP套接字),并且它有一些扩展的语法选项(例如命名空间,库),但我反驳了这样一种观念,即实现真实世界功能需要"减少50%的代码"在ActionScript和JavaScript中 - 特别是对于游戏.我还要补充一点,JavaScriptCore,V8和V8通常优于ActionScript(尽管IE的JScript确实只比带算盘的老人快一点). (15认同)
  • "复杂游戏"无法实现?我不认为我同意这个说法.Javascript是一种与其他语言类似的语言(正如Iain所指出的,与ActionScript基本相同).也许您正在考虑API而不是语言; 虽然有很多可用的Javascript API,但您应该选择查找它们.通过添加渲染API(即canvas元素),我认为您将能够在另一个框架中实现任何复杂的游戏.我相信,说_language_无法解决某个问题是一种谬误. (8认同)
  • 可以用Javascript编写复杂的游戏.这并不意味着我想要.游戏严重依赖语言的结构特征来更好地分离系统,游戏逻辑等.毫无疑问,Javascript具有明显缺乏结构特征(例如,使用闭包来封装JS对象中的库是一件很酷的事情我可以欣赏的想法,但它有点janky).关于API,我拒绝接触html5/JS/canvas游戏,直到`<audio>`赶上`<canvas>`. (3认同)
  • 在SJ的一边,我看到网站通过基于Flash的广告让我的机器强大到了它的膝盖.不可否认的是,这些Flash广告很糟糕,但它是闪存.现在在移动电话上,一个可以导致cpu达到100%的广告并不好,我支持SJ断言Flash是有害的. (2认同)

小智 37

我想这里的一些人都是编程的势利者,而不是在听.我也是Flash开发人员,我不希望它消失.你知道为什么?因为CREATIVE人可以很容易地使用Flash来开发我们大脑中的东西.喜欢绘制和创建场景的人不一定喜欢编码.打字一堆"句子"不是绘画和动画!您对HTML5的评价就像是说毕加索和达利应该学习编程语言才能画画.荒谬,对吧?

这就是人们喜欢Flash到HTML5的原因.这不是自私自利,它只是承认能够创建酷炫的动画网页内容的人宁愿能够创造我们自己的愿景,而不是学习不相关的技能或依靠别人为我们解释.

您可能想要提供一个可与Flash相媲美的HTML5视觉环境,而不是嘲笑.

  • 我认为这是一个好点.除非有HTML5内容的等效创作工具,否则很难被采用.当然,程序员可以用HTML5/Javascript/CSS3做同样的事情,他们可以用Flash做,但艺术家不会想要乱用代码.我们需要的是一个基于Web的动画套件,它至少与Adobe的工具一样易于使用.毫无疑问,Adobe已经在开展这样的工作,因此他们避免失去在网络内容创作方面的主导地位. (6认同)
  • TRiG,我不同意.问题是HTML5是否可以取代Flash.要现实地回答这个问题,您仍然需要考虑创作工具的可用性. (5认同)
  • Adobe应该做的是结合来自Flash IDE的画布支持=即,在IDE中完成所有动画并输出HTML5 ready标记包,标记,css和js.让人们选择输出,就像他们使用AIR一样.它绝对可以确保Flash IDE的使用寿命,如果不一定是SWF的优势. (3认同)
  • Adobe推出[Adobe Edge](http://labs.adobe.com/technologies/edge/)后,这个答案变得陈旧 (3认同)
  • 您应该尝试最近发布的[炒作](http://tumultco.com/hype/). (2认同)

Nic*_*lay 10

从技术/编码的角度来看,如何才能将基于文本的标记语言(HTML5)视为多媒体框架(Flash)的替代品?

HTML5是"Web技术堆栈"的新热门名称,而不仅仅是"标记语言".

它有一种编程语言(JavaScript),就像Flash一样; 一组API,作为通常标记为"HTML5"的工作的一部分,显着扩展,绘制图形(SVG,<canvas>),播放音频和视频(<audio>,<video>)的方法.

与Flash不同,"HTML5应用程序"由浏览器处理,而不是由专有的浏览器插件处理,这很好 - 至少对于浏览器供应商而言(请参阅此博客文章的相关部分- 感谢Jotham).例如,它使浏览器供应商能够解决问题(而不是等待Adobe) - IIRC Apple称Flash是Mac上所有崩溃事件中崩溃的首要原因.

[编辑删除"开放标准更好"声称我懒得备份]

  • "由浏览器处理,而不是由专有的浏览器插件处理,这很好." 怎么样?,我们有这么多的浏览器,目前似乎以不同的方式呈现页面.至少对Flash来说,有一个一致的环境可供开发."开放标准也优于单一垄断实施." 这取决于.开放标准在理论上很有效,但对于推进技术来说却很糟糕.只需看看OpenGL与DirectX. (9认同)
  • @Antony - 你错过了我的观点.我当然不是说OpenGL是一种冗余技术,远非如此.我的观点是专有技术往往是推动技术发展的动力.DirectX从OpenGL中退出,从那以后它一直在追赶.http://www.tomshardware.com/reviews/opengl-directx,2019.html如果过去10多年没有闪存,我们就会没有流媒体视频(youtube)和复杂的互动媒体.更重要的是闪存将不断改进.如果没有专利技术,我们将以蜗牛的速度前进. (6认同)
  • 通过在Mac OS上关于Flash崩溃的声明添加一些额外的细节.http://daringfireball.net/2010/01/apple_adobe_flash (3认同)
  • @Allan之所以浏览器用于呈现不同页面的原因是因为W3C在很大程度上可以解释,特别是微软在遵循规范方面很糟糕.开放标准远远优于单一实施 - 但只有在明确定义时才开放. (3认同)
  • @Luka Ramishvili - 是的,但它不像OpenGL在Windows上不起作用.广受欢迎的Quake 2引擎推出了软件或opengl渲染.只有在Half-Life时期之后,他们才会添加DirectX支持.我认为只是微软有资金以更快的速度开发DirectX (2认同)

Dou*_*ner 8

它不仅仅是HTML5,而是当浏览器采用它时.例如,HTML5 <video>标签的存在意味着没有浏览器提供的视频播放器来实际呈现视频(此时,希望不再需要Flash视频).这同样适用于<audio>标签.

此外,HTML5的canvas元素(与JS结合)允许在浏览器中使用比之前更高级的图形.


non*_*one 7

好吧,为了获得HTML5/canvas + JavaScript功能的印象,您可能需要看一下是一个纯粹在HTML5中完成的Wolfenstein 3D实现,不使用任何Flash(请注意,您需要启用画布)浏览器如Firefox看到这个工作).


Voi*_*ter 6

HTML5可以通过按功能匹配来替换Flash.更重要的是,HTML5堆栈(包括JavaScript和CSS)可用于构建相同类型的富Web应用程序,Flash之前是唯一可行的选项.因为HTML承诺也解决了Flash平台的一些缺点,所以它有可能在未来取代这个领域的Flash.

本讨论主要围绕用于在用户端呈现应用程序的技术.它没有说明作者实际上能够轻松创建将传递给用户的内容.您已经提到Flash与一组商业工具相关联,这些工具由Adobe专门构建和营销,以满足富内容作者的需求.HTML5的这些解决方案尚未被广泛采用.对于那些将创作主要视为编码的开发人员而言,这不是一个大问题,他们也不会很难获得HTML5(许多人已经做过).对于那些没有开发人员/编码背景的作者,这可能是另一个故事,对于他们来说,HTML5的可行性将在很大程度上取决于集成创作工具的可用性.也许Adobe Flash工具会在几年后输出到HTML5而不是SWF ......


小智 5

这些愚蠢的非创造性人物没有意识到的是,HTML5/Javascript/CSS开始时非常臃肿.所有这些资产仍然是完全RAW文本文件.没有压缩没有字节码优化,它总是那样.因此,对于游戏开发者来说,不能选择让您的所有资源都轻易被盗.Flash允许您以更紧凑的方式编译源代码,同时仍然能够以紧凑的矢量图形方式创建动态内容.该闪存的Ontop已经支持着色器,硬件加​​速,像素滤镜(Pixel bender)和图层效果.直到今天,您无法轻松简单地获取html元素.HTML5只会尝试取代闪存作为媒体播放器,但由于Flash的受欢迎程度是由于它的一致性,因此它将是一个很难卖的东西.我认为我对CSS和Javascript的仇恨是因为40%的javascript代码用于浏览器兼容性,并且CSS暗示在不同的浏览器供应商上并不是一致的.直到你的书呆子解决这个问题Flash永远不会被替换.事实是,无论你在HTML5中做什么,我们都可以更快,更好地在闪存中做.

我已经在Canvas中看过Wolfenstein 3D.它的劣势.而且很小.我们可以用更大的窗口制作更好的3D引擎.打败那个?