Flash vs. (Ex) Холст против SVG/VML

Если бы вы сегодня разработали графическое тяжелое интерактивное веб-приложение (например, игра Mario Bros.), какая из трех доступных технологий вы бы предпочли - Flash, (Ex) Canvas или SVG/VML?

Какие параметры вы бы рассмотрели и как бы вы оценили эти технологии по каждому параметру? Я могу думать о следующем:

a) Скорость рендеринга b) Универсальность (отдельная поддержка DOM и т.д.) c) Поддержка браузера (текущая и ожидаемая) d) Поддержка сообщества разработчиков

Ответ 1

UPDATE

С появлением API веб-аудио и библиотек, таких как Howler.JS, я объявляю, выхожу вперед и делаю великолепные игры html5/canvas со звуками, которые отлично работают на iOS6 и выше, и многочисленные флэш-резервные резервные копии для звука, который работа прекрасно, вы знаете, кто браузеры.

оригинальный ответ: Flash сегодня, холст завтра. Холст выглядит действительно многообещающим, и вокруг есть впечатляющие демонстрации. В хром производительность Canvas сравнима с флеш-памятью, поэтому вы сможете делать игры, которые хорошо конкурируют. (отказ от ответственности, я профессионально участвую в создании игр и программ на основе javascript/dom)

Но главная причина, по которой вы все равно должны пойти со вспышкой? Звук. Родственный браузер apis для звука настолько жалкий. Вы можете использовать soundmanager2 (который обертывает flash api и скрытый флеш-фильм в javascript api), но возможности этого ограничены латентностью моста flash/javascript.

Поддержка звуковых тегов в новых браузерах должна иметь некоторый прогресс, но предлагаемое не очень конкурентоспособно с возможностями флеш-аудио.

Тем не менее, дайте ему примерно 2 или 3 года, и я готов поспорить, что выбор будет намного менее очевидным.

Однако, если вы не возражаете сделать игру без звука, или слайковый звук не очень важен, и вы не возражаете, что это медленная работа в IE, а затем пойти с холстом.

Silverlight даже не работает, не заставляйте меня смеяться.

Ответ 2

Используйте Flash, потому что он поддерживается одинаково всеми браузерами.

SVG является стандартом, но только три поставщика пользовательских агентов поддерживают его выше 40% спецификации. Opera поддерживает ее выше 90%, Adobe поддерживает ее выше 80%, но ее можно поддерживать лучше, чем в прошлом году, а Safari поддерживает ее выше 40%, но не поддерживает сопоставимую версию по сравнению с предыдущими двумя упомянутыми группами. Спецификация слишком длинная, и поэтому ее дорогостоящим образом реализовать правильно, что является той же причиной, по которой HTML5, как ожидается, займет 10 лет. Холст является частью HTML5, который еще не является стандартом и может быть изменен без предупреждения.

Помимо поддержки, я ожидаю, что Flash станет самой эффективной из этих технологий для богатого программного опыта. Если SVG будет поддерживаться более широко, я бы рекомендовал его для всех векторных интерактивных носителей, которые не сильно зависят от богатого программирования, потому что это менее дорогостоящее обслуживание и расширение.

Ответ 3

Flash: потому что это именно тот материал, для которого предназначен Flash.

  • Flash-сайты как эти работают гладко в система с нормальной конфигурацией.
  • Я не очень разбираюсь в универсальности других двух, но есть множество API-интерфейсов, доступных для flash
  • Поддержка браузера: Flash имеет очень хорошее проникновение ( > 90% по Adobe). Я не думаю, что многие браузеры (кроме FF 3.5) поддерживают SVG или тег Canvas.
  • Flash - это хорошо зарекомендовавшая себя платформа и имеет сильный разработчик поддержка.

Ответ 4

Не забывайте о Silverlight. Его функции приближаются к сопоставимым уровням со вспышкой, а в некоторых областях даже превосходят Flash по функциональности и производительности. Это не так хорошо распространяется как Flash-плеер, но доля рынка постоянно растет.

Для игры я все же, вероятно, скажу, что использую флеш-память, но для богатых приложений я бы скорее построил Silverlight. Эй... ты всегда мог бы гибрид между ними. Ознакомьтесь с новым сайтом Sherlock Holmes, который объединяет HTML, Flash и Silverlight (для элементов PhotoSynth).

Ответ 5

В это время для вашей цели я рекомендую использовать Flash. Как уже говорилось, многие люди устанавливают и активно работают, он отлично работает на большинстве отдельных компьютеров и обладает хорошей поддержкой обработки мультимедиа и графикой.

Однако использование тега canvas или SVG имеет определенные преимущества, которые растут ежедневно. Прежде всего, обе технологии более широко совместимы, чем Flash с аппаратной точки зрения. Хотя Flash хорошо работает на ПК и Mac, он плохо работает на Linux, и он не будет работать вообще на большинстве смартфонов. Приложения на основе Canvas и SVG будут работать на большинстве современных смартфонов и на каждом современном компьютере на базе x86, если вы используете правильный браузер. Вы можете использовать их в IE, если вы заставляете своих пользователей устанавливать рамку Google Chrome.

Во-вторых, Flash - это собственная платформа; поэтому он имеет конечный срок службы. Написание приложения во Flash обязывает Adobe и ее платформу. Вы, по сути, говорите: "Я доверяю Adobe, чтобы продолжать поддерживать флеш-платформу, сохраняя при этом совместимость с моим приложением". SVG и Javascript являются стандартами; приложение, построенное на SVG, скорее всего, останется доступным для loooooong time.

В заключение, Flash все же лучше подходит для графических задач AFAIK, но использование SVG и/или холста следует учитывать, тем не менее.

Ответ 6

Как насчет защиты кода. С Canvas и SVG лучше всего вы можете скрыть ваш код, который не является надежной защитой.

Ответ 7

Вспышка...

Мы уже знаем, что это хорошо работает для этого, имеет гораздо более широкую поддержку браузера, и есть много людей, которые имеют опыт использования.