2009-11-20 4 views
10

Si vous deviez concevoir une application web interactive très graphique (disons un jeu comme Mario Bros.) aujourd'hui, laquelle des trois technologies disponibles préférez-vous? Flash, (Ex) Canvas ou SVG/VML?Flash vs (Ex) Canvas vs SVG/VML

Quels paramètres envisageriez-vous et comment évalueriez-vous ces technologies pour chaque paramètre? Je peux penser à ce qui suit:

a) Vitesse de rendre b) Polyvalence (support DOM séparé, etc.) c) support du navigateur (actuel et prévu) d) Développeur Communauté Aide

Répondre

7

MISE À JOUR

Avec l'avènement de l'API Web Audio et bibliothèques comme Howler.JS, je déclare, aller de l'avant et faire des jeux glorieux html5/toile avec des sons qui fonctionnent très bien sur iOS6 et plus, et de nombreuses solutions de remplacement basées sur le flash pour le son qui fonctionnent très bien dans vous savez qui navigateurs.

réponse originale: Flash aujourd'hui, canvas demain. Canvas a l'air très prometteur, et il y a quelques démonstrations impressionnantes. En chrome, la performance de Canvas est à la hauteur de celle du flash, ce qui vous permet de faire des jeux assez compétitifs. (avertissement, je suis professionnellement impliqué dans la création de jeux et de programmes basés sur javascript/dom)

Mais la principale raison pour laquelle vous devriez toujours aller avec flash? Du son. Les apis du navigateur natif pour le son sont si pathétiques. Vous pouvez utiliser soundmanager2, (qui enveloppe l'api flash, et un film flash caché, dans un api javascript), mais les capacités de celui-ci sont limitées par la latence du pont flash/javascript.

La prise en charge des balises audio dans les nouveaux navigateurs devrait faire des progrès, mais ce qui est proposé n'est pas très compétitif avec les capacités audio du flash. Néanmoins, donnez-lui environ 2 ou 3 ans et je suis prêt à parier que le choix sera beaucoup moins évident. Cependant, si cela ne vous dérange pas de faire un jeu muet, ou un son lisse n'est pas très important, et cela ne vous dérange pas que ce soit chien lent dans IE, alors allez avec toile.

Silverlight n'est même pas dans la course, ne me fais pas rire.

+1

Je voudrais ajouter que vous devriez probablement regarder haxe. C'est un langage de programmation qui se compile soit en flash, soit en javascript. – Breton

5

Utiliser Flash, car il est supporté également par tous les navigateurs. SVG est un standard, mais seulement trois vendeurs d'agents utilisateurs le supportent au-dessus de 40% de la spécification. Opera le supporte au dessus de 90%, Adobe l'a supporté au dessus de 80% mais peut être mieux supporté maintenant que l'année dernière, et Safari le supporte au dessus de 40% mais ne supporte pas de manière comparable comparé aux deux précédents groupes. La spécification est trop longue et il est donc coûteux de la mettre en œuvre correctement, ce qui est la même raison pour laquelle HTML5 devrait prendre 10 ans pour être implémentée. Canvas fait partie de HTML5, qui n'est pas encore une norme et est susceptible d'être modifié sans préavis. En dehors du support, je pense que Flash sera la plus efficace de ces technologies pour une expérience programmatique riche. Si le format SVG était plus largement supporté, je le recommanderais pour tous les supports interactifs basés sur des vecteurs qui ne dépendent pas fortement d'une programmation riche, car il est moins coûteux à maintenir et à développer.

3

Flash: parce que c'est exactement le genre de choses pour lesquelles Flash est conçu.

  • sites Flash likethese de travail en douceur dans un système avec une configuration normale.
  • Je ne sais pas beaucoup sur la polyvalence des deux autres, mais il y a un lot of APIs disponible pour le soutien du navigateur Flash
  • : Flash a une très bonne pénétration (> 90% selon Adobe). Je ne pense pas que de nombreux navigateurs (sauf FF 3.5) supportent SVG ou la balise Canvas.
  • Flash est une plate-forme bien établie et a un strongdevelopersupport.
+0

Les balises SVG et Canvas sont prises en charge par les navigateurs basés sur Webkit tels que Safari et Chrome. –

+1

Ouais. Mais avec IE & FF couvrant plus de 80% des navigateurs, la question est combien d'utilisateurs ont safari et chrome. Flash est partout grâce à youtube (et aux sites de streaming de pron, bien sûr). – Amarghosh

+0

La balise s'exécute également dans IE. Comme Flash, il nécessite un plugin. http://code.google.com/p/explorercanvas/ – MattMcKnight

0

Flash ...

nous savons déjà qu'il fonctionne bien pour cela, a beaucoup plus large soutien du navigateur & il y a beaucoup de personnes ayant une expérience qui l'utilisent.

2

Ne négligez pas Silverlight. Ses fonctionnalités atteignent des niveaux comparables à ceux du flash et, dans certaines zones, dépassent même les fonctionnalités et les performances de Flash. Ce n'est pas aussi bien distribué que le lecteur Flash mais la part de marché augmente tout le temps.

Pour un jeu, je dirais encore probablement aller avec flash, mais pour les applications riches, je préfère construire dans Silverlight. Hey ... vous pourriez toujours hybride entre les deux. Découvrez le nouveau site Sherlock Holmes qui intègre HTML, Flash et Silverlight (pour les éléments PhotoSynth).

1

Pour le moment, je vous recommande d'utiliser Flash.Comme tout le monde l'a déjà dit, beaucoup de gens l'ont installé et actif, il fonctionne bien sur la grande majorité des ordinateurs individuels, et il a une bonne prise en charge des médias et des graphiques. Cependant, l'utilisation de l'étiquette canvas ou SVG présente des avantages distincts qui croissent chaque jour. Tout d'abord, les deux technologies sont plus largement compatibles que Flash du point de vue matériel. Bien que Flash fonctionne bien sur PC et Mac, il fonctionne mal sur Linux, et il ne fonctionnera pas du tout sur la plupart des smartphones. Les applications basées sur le format SVG et sur les canvas fonctionneront sur la plupart des smartphones modernes et sur tous les ordinateurs x86 modernes, à condition d'utiliser le bon navigateur. Vous pouvez les utiliser dans IE si vous demandez à vos utilisateurs d'installer le cadre Google Chrome.

Deuxièmement, Flash est une plate-forme propriétaire; par conséquent, il a une durée de vie de limitée à. Écrire une application dans Flash est un engagement envers Adobe et sa plate-forme. Vous dites essentiellement "Je fais confiance à Adobe pour continuer à maintenir la plate-forme Flash tout en conservant la compatibilité avec mon application." SVG et Javascript sont des standards; une application construite sur SVG est susceptible de rester accessible pendant un temps loooooong. En conclusion, Flash est encore meilleur pour les tâches gourmandes en graphiques AFAIK, mais l'utilisation de SVG et/ou de canvas devrait néanmoins être envisagée.

+0

Connaissez-vous des données sur les différences de vitesse de rendu entre les technologies? –

+0

Non, malheureusement, je n'ai pas encore pu utiliser Canvas ou SVG dans aucun de mes projets. Je n'ai pas non plus vu de comparaison de vitesse entre les API de dessin Web et Flash. J'ai supposé que les normes étaient plus lentes, mais je ne me souviens pas avoir jamais lu cela. –

1

Qu'en est-il de la protection par code? Avec Canvas et SVG, le mieux que vous puissiez faire est d'obscurcir votre code, ce qui n'est pas vraiment une protection robuste.

+0

Merci de le signaler :) –