Когда я заархивирую демонстрационный проект FlashDevelop, почему он ломается?

Я создал галерею изображений AS3 с помощью FlashDevelop.

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

Затем я заархивирую проект как proj-0.1.2.zip с помощью winrar.

Затем я распаковываю этот только что созданный zip и пытаюсь загрузить приложение, используя проект index.html, как указано выше. Галерея работает некорректно. Судя по тому, что происходит, кажется, что метаданные изображения отсутствуют (но я не уверен, см. ниже).

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

Другое дело.. Если я потом соберу проект FlashDevelop и переопубликую swf.. то он будет работать в index.html, как я хочу. Что здесь происходит?

Я хочу, чтобы люди могли запускать мои демонстрационные приложения из коробки, просто запустив index.html. Если это не всегда работает, и им приходится выяснять, что им нужно перестроить SWF, то это очень плохо.


person Ryan    schedule 13.05.2010    source источник
comment
Подводя итог: когда я архивирую, а затем распаковываю flashDevelop swf, этот swf больше не может правильно загружать внешние файлы. После архивирования и распаковки мой видеоплеер и галерея изображений не работают. Я должен пересобрать swf flashDevelop, чтобы он снова заработал. Я преобразовал одно из приложений flashDevelop в приложение flash CS3, и в версии Flash CS3 этой проблемы нет. Почему у flashDevelop такая проблема?   -  person Ryan    schedule 14.05.2010


Ответы (1)


Я не думаю, что архивирование является проблемой, я думаю, что проблема заключается в перемещении в другую папку.

Я предполагаю, что вы используете этот index.html на своем локальном ПК, а не на веб-сервере?

По умолчанию Flash не может получить доступ из локального SWF для загрузки других локальных файлов. Однако FlashDevelop/Flash CS3/Flex Builder, чтобы обойти это ограничение, установили во флеш-плеере некоторые флаги, сообщающие ему: «Этот SWF является доверенным SWF, разрешите ему открывать локальные файлы». Но это основано на точном местоположении SWF.

Где-то в компиляторе есть параметр, который устанавливает флаг в SWF, говорящий: «Этот SWF может получить доступ к локальным данным», но есть один недостаток: он блокирует любой доступ к сетевым ресурсам. Так что либо/или: доступ к локальным данным, ИЛИ доступ к сетевым ресурсам (все, что проходит через HTTP, Socket и т. д.). Я не уверен, где эта настройка навскидку. Возможно, настройки по умолчанию для Flash CS3 отличаются от настроек по умолчанию для FlashDevelop.

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

person davr    schedule 15.05.2010