繁体   English   中英

Flash vs.(Ex)Canvas vs. SVG / VML

[英]Flash vs. (Ex)Canvas vs. SVG/VML

如果您今天要设计一个图形密集的交互式Web应用程序(比如像Mario Bros这样的游戏),您更喜欢三种可用技术中的哪一种 - Flash,(Ex)Canvas或SVG / VML?

您会考虑哪些参数以及如何对每个参数评估这些技术? 我能想到以下几点:

a)渲染速度b)多功能性(单独的DOM支持等)c)浏览器支持(当前和预期)d)开发人员社区支持

UPDATE

随着Web Audio API和像Howler.JS这样的库的出现,我宣布,用iOS6及以上版本的声音制作光彩的html5 /画布游戏,并且有很多基于闪存的声音效果很好在你知道谁是浏览器。

原文回答:今天Flash,明天画布。 Canvas看起来很有前途,并且有一些令人印象深刻的演示。 在Chrome中,Canvas的性能与闪存相当,因此您可以制作竞争非常好的游戏。 (免责声明,我专业参与创建基于javascript / dom的游戏和程序)

但是你仍然应该使用闪存的主要原因是什么? 声音。 声音的原生浏览器apis太可悲了。 您可以使用soundmanager2(包装flash api和隐藏的flash电影,在javascript api中),但其功能受到flash / javascript桥接器延迟的限制。

新浏览器中的音频标签支持应该取得一些进展,但提出的建议与闪存的音频功能竞争力不强。

然而,给它大约2或3年,我愿意打赌,选择看起来不那么明显。

但是,如果你不介意做一个静音游戏,或者光滑的声音不是很重要,你不介意它在IE中慢慢的狗,那就去画布吧。

Silverlight甚至没有在奔跑,也不会让我发笑。

使用Flash,因为所有浏览器都支持它。

SVG是一种标准,但只有三个用户代理供应商支持它超过规范的40%。 Opera支持它超过90%,Adobe支持它超过80%,但现在可能比去年更好地支持它,并且Safari支持它超过40%但不支持与前两个提到的组相比的方式。 规范太长,因此正确实施成本很高,这与HTML5预计需要10年才能实现的原因相同。 Canvas是HTML5的一部分,HTML5尚未成为标准,如有更改,恕不另行通知。

除了支持,我希望Flash能够成为这些技术中效率最高的丰富程序体验。 如果更广泛地支持SVG,我会推荐它用于所有基于矢量的交互式媒体,这种媒体并不严重依赖于丰富的编程,因为它的维护和扩展成本最低。

Flash :因为这正是Flash的用途。

  • 这样的 Flash网站在具有正常配置的系统中可以顺利运行。
  • 我不太了解其他两个的多功能性,但有很多API可用于闪存
  • 浏览器支持:Flash具有非常好的渗透率(根据Adobe, > 90%)。 我不认为许多浏览器(除了FF 3.5)支持SVG或Canvas标签。
  • Flash是一个成熟的平台,具有强大的 开发人员 支持

不要忽视Silverlight。 它的功能与闪存相当,在某些领域甚至超过Flash的功能和性能。 它的分布不如Flash播放器,但市场份额一直在增​​加。

对于一款游戏,我仍然可以说使用闪存,但对于丰富的应用程序,我更愿意使用Silverlight。 嘿......你总是可以在两者之间混合。 查看集成了HTML,Flash和Silverlight(适用于PhotoSynth元素)的新Sherlock Holmes网站。

目前,为了您的目的,我建议您使用Flash。 正如大家已经说过的那样,很多人都安装并运行它,它在绝大多数个人计算机上运行良好,并且具有良好的媒体处理和图形支持。

但是,使用canvas标签或SVG具有日益增长的独特优势。 首先, 从硬件角度来看 ,这两种技术都比Flash更广泛兼容 虽然Flash作品以及在PC和Mac,它的工作原理不佳在Linux上,它不会对大多数智能手机运行。 如果您使用正确的浏览器,基于Canvas和SVG的应用程序将在大多数现代智能手机和每台基于x86的现代计算机上运行。 如果您让用户安装Google Chrome浏览器内嵌框架,您可以在IE中使用它们。

其次,Flash是一个专有平台; 因此,它具有有限的寿命。 在Flash中编写应用程序是对Adobe及其平台的承诺。 您实际上是在说“我相信Adobe会继续维护Flash平台,同时保持与我的应用程序的兼容性。” SVG和Javascript是标准; 一个建立在SVG上的应用程序可能会在一段时间内保持可访问状态。

总之,Flash对于图形密集型任务AFAIK仍然更好,但是应该考虑使用SVG和/或画布。

代码保护怎么样? 使用Canvas和SVG,您可以做的最好的事情是模糊您的代码,这不是非常强大的保护。

Flash ...

我们已经知道它适用于此,有更广泛的浏览器支持,并且有很多人有使用它的经验。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM