Переход от Flash - PullRequest
       31

Переход от Flash

0 голосов
/ 11 августа 2009

Я создаю полноэкранные интерактивные демонстрации во Flash и недавно пытался перейти на новый язык. Мои Flash-демонстрации в основном являются программными прототипами и работают в EXE-проекторе вне браузера. Я хочу оставить Flash по разным причинам, в том числе:

  • Плохой контроль качества во Flash плеере
  • Проблемы с аппаратным ускорением на nVidia и ATI, приводящие к повторяющимся BSOD
  • Недостаточно низкоуровневого доступа к файловой системе, сети

При поиске новой платформы мне нужна способность развиваться для следующих требований:

  • Кроссплатформенность (только Mac и ПК)
  • 100% графический интерфейс (32-битный прозрачный PNG) на основе пользовательского интерфейса
  • Полноэкранный эксклюзивный режим (если возможно, возможность настройки разрешения экрана пользователя)
  • Качественное воспроизведение мультимедиа
    • H.264 / AAC MPEG-4 видео до 1920x1080
    • WAV & MP3 аудио
  • Базовые компоненты пользовательского интерфейса - ScrollBar, TextField и т. Д. (Желательно с поддержкой скинов / расширений)
  • 3D возможности

Буду признателен за любые рекомендации, которые вы можете дать по языкам, фреймворкам, книгам, веб-сайтам и т. Д. Я знаю больше на Java, чем на C / C ++, поэтому было бы неплохо увидеть там больше рекомендаций.

Ответы [ 7 ]

4 голосов
/ 11 августа 2009

Обработка

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

Простой уровень Directmedia

Для истинной кроссплатформенной скорости и доступа к оборудованию вы можете посмотреть что-то вроде Simple DirectMedia Layer . SDL - это кроссплатформенная библиотека, используемая для демонстраций и игр. Имеет поддержку 2D и 3D, а также доступ к устройству. Он будет работать на Windows, Linux, Mac и множестве других вариантов аппаратного и программного обеспечения. Он написан на C, чтобы сделать его легко кроссплатформенным, но вы можете кодировать C ++ или использовать привязки для Python, Java или Ruby, если вы ищете что-то другое. Я не верю, что SDL не имеет встроенной библиотеки виджетов, но многие из них перечислены на их сайте в категории Интерфейс SDL библиотек .

Qt

Другой вариант - Qt , кросс-платформенная библиотека виджетов, недавно приобретенная Nokia. Nokia - нечетный владелец, но библиотека лицензирована по LGPL и предлагает все, что вам нужно. Я не знаком с созданием графически интенсивных демонстраций под Qt, но их документация делает это возможным.

openFrameworks

openFrameworks также используется для демонстрации и передовых графических и аппаратных приложений. openFrameworks написан на C ++ и не так прост для менее опытных разработчиков. У него нет определенной библиотеки виджетов, и он все еще находится в состоянии альфа-версии. Я еще не углубился в openFrameworks, но он намного более продвинут и приспособлен для продвинутых приложений, таких как помеченные openFrameworks на Vimeo .

2 голосов
/ 11 августа 2009

Традиционный конкурент Flash - Silverlight .

1 голос
/ 11 августа 2009

Вы можете использовать обычную Java с привязкой OpenGL, например, JOGL / LWJGL, но у вас будут проблемы с воспроизведением мультимедиа. Я думаю, JavaFX обеспечивает большую часть этой поддержки воспроизведения мультимедиа, а также ускорение OpenGL, и все это в красивой Java-среде. Если вам нужна кроссплатформенная поддержка, вы будете в беде, пытаясь найти подходящие библиотеки для каждого варианта платформы. Если вам просто нужны окна, JavaFX может быть очень жизнеспособным.

1 голос
/ 11 августа 2009
  • 100% графический интерфейс (32-битный прозрачный PNG) на основе пользовательского интерфейса - я не уверен, что вы подразумеваете под PNG при смешивании в пользовательском интерфейсе? Вы имеете в виду, что они должны иметь качество PNG? PNG формат изображения, а не слой рендеринга.
  • Полноэкранный эксклюзивный режим (если возможно, возможность настройки разрешения экрана пользователя)

В соответствии с этими требованиями вы в значительной степени застряли с откомпилированными исполняемыми файлами некоторого языкового разнообразия.

0 голосов
/ 28 августа 2009

Возможно Zinc - это решение, в котором вы все еще можете использовать / применять свои навыки Flash / Actionscript и создавать специальные исполняемые файлы для Windows и OSX, которые не имеют тех же ограничений, что и обычные проекторы Flash.

0 голосов
/ 12 августа 2009

WPF звучит идеально для ваших нужд.

Я бы определенно рекомендовал использовать WPF. Я большой поклонник Flash, но похоже, что в данный момент вы не используете правильный инструмент для правильной работы!

WPF похож на старшего брата Silverlight (сильнее, умнее, привлекательнее). Если вы хотите создать EXE-файлы под управлением Windows, почему бы не использовать платформу Microsoft для их создания. Мне кажется умным.

Если Silverlight ориентируется на Интернет и ограничивает вас песочницей, WPF позволяет вам свободно делать то, что вы хотите. Вы можете делать что-либо внутри .net, но Silverlight использует только подмножество .net framework.

WPF также полностью аппаратно ускорен и хорошо работает с большими видео. Конечно, вы должны убедиться, что ваше видео закодировано правильно, потому что есть некоторые видео, которые слишком велики для воспроизведения на большинстве ПК.

Единственная проблема в том, что это только Windows. Но я не уверен, есть ли способ обойти это или нет.

0 голосов
/ 11 августа 2009

Я бы сказал, что вам нужно либо взглянуть на Silverlight (и я понятия не имею, будет ли он соответствовать вашим потребностям, поскольку я пока не думаю, что он может работать в 3D), либо какой-либо графический движок OpenGL.

...