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

Si hoy diseñara una aplicación web interactiva con muchos charts (digamos un juego como Mario Bros.), ¿cuál de las tres tecnologías disponibles preferiría: Flash, (Ex) Canvas o SVG / VML?

¿Qué parameters consideraría y cómo calificaría estas tecnologías en cada parámetro? Puedo pensar en lo siguiente:

a) Velocidad de renderizado b) Versatilidad (soporte de DOM separado, etc.) c) Soporte de browser (actual y esperado) d) Soporte de la comunidad de desarrolladores

ACTUALIZAR

Con el advenimiento de Web Audio API y bibliotecas como Howler.JS, declaro, sigo adelante y hago gloriosos juegos html5 / canvas con sonidos que funcionan bien en iOS6 y versiones posteriores, y numerosos resguardos basados ​​en flash para un sonido que funciona bien ya sabes quién es el browser.

respuesta original: Destello hoy, canvas mañana. El canvas parece realmente prometedor, y hay algunas demos impresionantes. En Chrome, el performance de Canvas está a la par del flash, por lo que podrás hacer juegos que compitan bastante bien. (Descargo de responsabilidad, estoy involucrado profesionalmente en la creación de juegos y progtwigs basados ​​en javascript / dom)

¿Pero la razón principal por la que todavía debes ir con flash? Sonar. Las aplicaciones nativas del browser para sonido son tan patéticas. Puede usar soundmanager2, (que envuelve la aplicación flash, y una película flash oculta, en una aplicación javascript), pero las capacidades de eso están limitadas por la latencia del puente flash / javascript.

El soporte de la label de audio en los browseres nuevos debería avanzar, pero lo que se propone no es muy competitivo con las capacidades de audio del flash.

Sin embargo, concédale unos 2 o 3 años y estoy dispuesto a apostar que la elección parecerá mucho less obvia.

Sin embargo, si no te importa hacer un juego mudo, o el sonido resbaladizo no es muy importante, y no te importa que sea lento como un perro en IE, entonces elige el canvas.

Silverlight ni siquiera está corriendo, no me hagas reír.

Use Flash, ya que todos los browseres lo admiten por igual.

SVG es un estándar, pero solo tres proveedores de agentes de usuario lo soportan por encima del 40% de las especificaciones. Opera lo soporta por encima del 90%, Adobe lo soportaba por encima del 80%, pero puede ser admitido mejor ahora que el año pasado, y Safari lo soporta por encima del 40% pero no respalda de manera comparable en comparación con los dos grupos mencionados anteriormente. La especificación es demasiado larga, por lo que es costoso implementarla correctamente, que es la misma razón por la que se espera que HTML5 tarde 10 años en implementarse. Canvas es parte de HTML5, que aún no es un estándar y está sujeto a cambios sin previo aviso.

Además del soporte, espero que Flash sea la más eficiente de estas tecnologías para una rica experiencia programática. Si SVG fuera compatible más ampliamente, lo recomendaría para todos los vectores interactivos basados ​​en vectores que no dependen en gran medida de la progtwigción enriquecida, porque es less costoso de mantener y expandir.

Flash : porque este es exactamente el tipo de cosas para las que está diseñado Flash.

  • Los sitios web de Flash como estos funcionan sin problemas en un sistema con configuration normal.
  • No sé mucho sobre la versatilidad de otros dos, pero hay muchas API disponibles para flash
  • Compatibilidad con el browser: Flash tiene una penetración muy buena (> 90% según Adobe ). No creo que muchos browseres (aparte de FF 3.5) sean compatibles con SVG o la label de Canvas.
  • Flash es una plataforma bien establecida y tiene un fuerte soporte de desarrollador .

No pase por alto Silverlight. Sus características están llegando a niveles comparables con flash y en algunas áreas incluso excede a Flash en funcionalidad y performance. No está tan bien distribuido como el reproductor Flash, pero la cuota de mercado está aumentando todo el time.

Para un juego, todavía diría que es ir con flash, pero para aplicaciones ricas prefiero build en Silverlight. Oye … siempre podrías ser híbrido entre los dos. Echa un vistazo al nuevo sitio de Sherlock Holmes que integra HTML, Flash y Silverlight (para los elementos de PhotoSynth).

En este momento, para su propósito, le recomiendo que use Flash. Como todo el mundo ya ha dicho, mucha gente lo tiene instalado y activo, funciona bien en la gran mayoría de las computadoras individuales, y tiene un buen event handling medios y soporte de charts.

Sin embargo, usar la label canvas o SVG tiene distintas ventajas que crecen a diario. En primer lugar, ambas tecnologías son más compatibles que Flash desde el punto de vista del hardware. Aunque Flash funciona bien en PC y Mac, funciona mal en Linux, y no funcionará en la mayoría de los teléfonos inteligentes. Las aplicaciones basadas en Canvas y SVG se ejecutarán en la mayoría de los teléfonos inteligentes modernos y en todas las computadoras modernas basadas en x86, siempre que esté utilizando el browser correcto. Puedes usarlos en IE si haces que tus usuarios instalen el marco de Google Chrome.

En segundo lugar, Flash es una plataforma propietaria; por lo tanto, tiene una vida útil finita . Escribir una aplicación en Flash es comprometerse con Adobe y su plataforma. Básicamente, estás diciendo "Confío en Adobe para seguir manteniendo la plataforma Flash sin perder compatibilidad con mi aplicación". SVG y Javascript son estándares; una aplicación desarrollada en SVG es probable que permanezca accesible durante mucho time.

En conclusión, Flash es aún mejor para las tareas de charts intensivos AFAIK, pero el uso de SVG y / o canvas debe tenerse en count, no obstante.

¿Qué pasa con la protección del código? Con Canvas y SVG, lo mejor que puedes hacer es ofuscar tu código, que no es una protección realmente robusta.

Destello …

ya sabemos que funciona bien para eso, tiene un soporte para browseres mucho más amplio y hay muchas personas con experiencia en su uso.