Объединить флэш-сайт в один исполняемый файл - PullRequest
0 голосов
/ 21 апреля 2011

Мне нужно как-то объединить flash-сайт в один исполняемый файл.

Сайт состоит из: index.html изображений звуки PDFs и т.д.

После нажатия на объединенный файл необходимо открыть index.html.

Возможно ли это?

=====================================

Adobe AIR может быть полезен для этого, но я могу создать только исполняемый файл установки, может быть, можно создать только исполняемый файл?

Ответы [ 2 ]

2 голосов
/ 21 апреля 2011

Вы можете упаковать любое количество файлов в приложение AIR (хотя время экспорта может существенно возрасти).Вы не можете создать «просто» исполняемый файл, потому что приложения AIR должны быть установлены, а HTMLLoader в любом случае потребуются отдельные файлы для страниц и изображений.По сути, все, что вам нужно сделать, это:

  • создать AIR с mx: HTML в качестве основного содержимого
  • указать mx: HTML для приложения: /index.html
  • убедитесь, что файлы вашего сайта массово встроены в установщик (поместите их в src dir)

Чтобы файлы pdf работали в браузере, пользователь должен установить Acrobat.Flash-контент должен работать внутри mx: HTML. Обновление:
Скрыть все файлы от пользователя сложнее.Я сделал нечто подобное, но не весь сайт, а приложение со встроенными страницами и ссылками.
Весь ваш контент можно упаковать в какой-нибудь zip-файл (не в exe, даже собственное приложение AIR не может настроить свою оболочку exe.) Вы можете дажезашифруйте каждый файл, если хотите.Проблема в ссылках и файлах (изображения, стили и сценарии.)
Я решил проблему с изображениями с помощью схемы URI данных (см. Мой вопрос - с самоответом - об этом.) Я думаю, что другие файлы могут бытьи таким образом.
Чтобы ссылки работали, вам нужно прослушать Event.LOCATION_CHANGE.Новая локация сообщит, куда HTML-элемент управления хочет перейти (он не сможет найти страницу), разархивирует соответствующую страницу и установит ее как htmlText.Итак, если вы действительно хотите встроить все, я бы сделал следующее:

  • Упакуйте все ваши файлы в один zip-файл для последующего распаковывания, используя некоторую библиотеку с непоследовательным zip-доступом (я использовал airxzip от coltware))
  • Сделать страницу обслуживающей системы.Это включает в себя распаковку страницы, сканирование ее на наличие использованных файлов (css, js, pictures), распаковку файлов, преобразование их в base64 и встраивание в страницу с данными: схема URI.Если ваши файлы не (или редко) распределяются между страницами, вы можете вставить их перед упаковкой и использовать как есть.Я не знаю, поддерживает ли Webkit JavaScript через этот протокол, даже если нет, вы можете преобразовать его в текстовый скрипт.
1 голос
/ 21 апреля 2011

В OS X вы можете скомпилировать его в .app, который представляет собой специальную папку, которая ведет себя как отдельный исполняемый файл.Я предполагаю, что это будет отличаться на каждой платформе, возможно, лучшее решение - это найти какую-то кроссплатформенную структуру, которая также может объединять представление браузера на основе WebKit, чтобы вам не приходилось иметь дело с разными браузерами и тем, как они обращаются к внешнимфайлы на каждой платформе.

Написав это, AIR может связывать файлы, и у него есть элемент управления StageWebView, который может отображать содержимое HTML (не уверен насчет отображения Flash внутри).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...