2013-09-11 4 views
1

Im в настоящее время разрабатывает SWF-3D-плеер для Интернета с помощью Flex SDK. Моя цель - создать воздушное приложение, которое позволяет пользователю загружать модели и экспортировать их в .swf 3D-плеер, чтобы сделать эти 3D-модели видимыми через Интернет. Im использует FlashDevelop.Возможно ли включить компилятор mxmlc flex в приложение AIR?

Моя первоначальная цель состояла в том, чтобы включить компилятор mxmlc и весь flex sdk внутри моего каталога bin bin приложений и запустить их с собственными расширениями на воздухе с аргументами (командной строки). Проблема в том, что flex sdk имеет размер около 800 МБ и снова требуется JRE для запуска mxmlc.

Есть ли способ включить минималистичный компилятор в мое приложение, которое не требует 800mb +? Я знаю, что я мог бы выводить общий swf, который сначала загружает конфигурационный файл с путями к модели и текстурам, а затем загружает их, но я хочу, чтобы модели и текстуры были включены внутри swf, чтобы они не могли быть легко загружены. Какие-либо предложения?

+0

Итак, ваше воздушное приложение просто загрузит готовые модели и сгенерирует файлы .SWF из них? Почему ваш SWF-3D-плеер не просто загружает файлы модели напрямую? – divillysausages

+0

Если я загружаю модели внутри внешнего проигрывателя .swf 3d Player (через URLRequest), это будет означать, что исходные 3d-модели подвергаются загрузке другими пользователями, поскольку они должны находиться где-то в веб-пространстве. Я хочу, чтобы 3d-файлы были включены в .swf для повышения безопасности. Я слышал, что загрузка файлов может быть ограничена приложениями, но я действительно хотел бы сделать ее максимально удобной для пользователя. Например. нажмите «export to swf button» и загрузите результат в свое веб-пространство, сделанное. –

+0

@DenisDik Я не уверен, с чего начать: Встраивание 3D-модели внутри SWF не обеспечивает ее гораздо большей защиты; поскольку SWF легко сбрасываются с обратной стороны; поэтому я подозреваю, что вы добавляете много работы в разработку приложений для очень малого успеха в защите данных. Вы можете обслуживать файлы через URL, не сохраняя файлы в доступном в Интернете каталоге [ColdFusion делает это с помощью cfcontent]. Концепция загружает файлы байтов из файловой системы и передает их в браузер. Ваш код может выполнять проверку безопасности, чтобы убедиться, что разрешен доступ. – JeffryHouser

ответ

1

Это не отвечает на заданный вопрос, но слишком длинный комментарий.

Ваша проблема заключается не в том, как включить компилятор flex в AIR, а в том, как легко и просто загружать модели и текстуры в SWF.

Прежде всего, нет 100% безопасного ответа; формат SWF легко декомпилируется (поэтому вложение 1 файла на SWF отсутствует), и если он будет достаточно определен, кто-то может посмотреть в память вашего приложения, чтобы найти то, что ему нужно; это все о прекращении простой копии.

Off верхней части моей головы, вот некоторые из способов, вы можете сделать это, при условии, что ваша конечная цель онлайн 3D модель зритель:

1) Иметь свой собственный формат

Хотя технически это невозможно, это довольно неудобно; в основном вы пишете свой собственный формат для хранения и отображения моделей (в основном, что делает большинство программ для 3D-моделирования). Это означает, что если кто-то завладеет файлом модели, это бесполезно для них, если они не пишут синтаксический анализатор (естественно, вам нужно защитить свой SWF-дисплей). Если целью вашего зрителя является покупка другими пользователями других моделей, то они понадобятся в формате, который они могут использовать, поэтому ваш рабочий процесс выглядит примерно так:

Создание модели в общем формате -> convert в пользовательский формат для отображения в проигрывателе -> пользователь просматривает и хиты «купить» -> они скачать общий формат файл

2) Загрузите 3D модель с вашего сайта

Самым простым вариантом; просто загрузите модель непосредственно с вашего сервера, подобно тому, как вы загрузили изображение. Чтобы пользователи не загружали файл напрямую, храните их над папкой htdocs и обращайтесь к ним через локальный URI во флэш-памяти. Так что ваша файловая система сервера выглядит примерно так:

  • модели
    • Model1
    • Model2
    • ...
  • HTDOCS
    • индекс.HTML
    • 3DPlayer.swf // загружает модели с использованием»../models/Model1" путь

Таким образом, только ваш SWF может получить доступ к модели (хотя технически, так как это загрузка файла, его может быть в кеше браузера - вы должны проверить его). Чтобы на самом деле поместить модели в каталог models, вам понадобится FTP-доступ к серверу или нужно создать простой скрипт (с использованием PHP или т.п.) для их загрузки.

3) Поток активов к вашему SWF

Как уже упоминалось, вы можете использовать что-то вроде ColdFusion для потоковой передачи активов непосредственно к SWF по запросу. У меня нет никакого опыта в ColdFusion, поэтому я не могу сказать, как это будет работать, но это не должно быть слишком трудно

4) DB соединение

Предполагая, что ваши модели сохраняются в виде текста blobs в БД (например, MySQL или MongoDB), вы можете либо напрямую подключиться к SWF, либо использовать PHP и AMFPHP для подключения к db и потоковой передачи модели таким образом.

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

Смежные вопросы