Есть ли неофициальная спецификация Flash .FLA?

Есть ли где-нибудь неофициальная спецификация, объясняющая, как реконструировать файл Flash .FLA?

Меня особенно интересует создание приложения, которое может программно «автоматически планировать сцену» документа Flash, извлекая содержимое из других файлов, упорядочивая это содержимое по слоям, без необходимости открытия Flash IDE. После этого аниматоры смогут взять эти предварительно собранные FLA-файлы и начать их анимировать. Я уже создал сценарий JSFL, который делает это, но он работает очень медленно, его сложно отлаживать или переназначать.


person Soviut    schedule 29.09.2009    source источник
comment
Примечание для современности: начиная с версии CS5, формат FLA теперь известен как zip-архив, содержащий медиаресурсы вместе с документом на основе XML, описывающим содержимое FLA. Информация здесь: blog.theflashblog.com/?p=1986   -  person fenomas    schedule 04.07.2011
comment
Это не zip-файл или поврежденная или проприетарная версия zip-файла. Каждый fla, созданный Flash Professional, при переименовании в zip вообще не может быть открыт с помощью 7-zip, и хотя WinRAR откроет его как архив, перечислит файлы и даже позволит вам извлечь файлы, он сообщит, что архив поврежден. Более того, если вы попытаетесь отредактировать ресурсы в архиве и воссоздать архив, Flash больше не сможет его открыть.   -  person Triynko    schedule 29.04.2013
comment
@Triynko, это zip-файл, в том смысле, что он был создан с использованием стандартного сжатия ZIP. Windows не имеет проблем с открытием и извлечением архива в структуру папок XML. Также хорошо задокументировано, что распаковка архива - это односторонний процесс.   -  person Soviut    schedule 30.04.2013
comment
Если предполагается, что это стандартный zip-архив, то, очевидно, в Flash CS6 есть какая-то ошибка, поскольку он создает поврежденные архивы. Свежий новый проект AS3 с прямоугольником на сцене, сохраненный как FLA, создает чистый, неповрежденный архив, но проект, над которым я работаю, при сохранении создает архив, который можно извлечь, но с некоторыми повреждениями.   -  person Triynko    schedule 30.04.2013
comment
У него также было несколько файлов XFL в своей корневой папке (один со старым именем после выполнения сохранения и один с новым именем), а также повторяющиеся и предположительно заброшенные объекты библиотеки, которые различаются только регистром (например, nextpage.xml и nextPage.xml), что становится очевидным, когда вы распаковываете архив в новую папку и получаете сообщения с просьбой заменить файлы, что происходит из-за того, что Windows не использует имена файлов с учетом регистра. Даже после удаления тех лишних файлов, которых там не должно быть, когда я повторно заархивирую, открываю во Flash и сохраняю его ... полученный zip-архив все еще поврежден.   -  person Triynko    schedule 30.04.2013
comment
Что касается одностороннего сжатия, я думаю, что мы оба ошибались, потому что оно не одностороннее. После распаковки (WinRAR сообщает о двух ошибках повреждения, но в остальном он кажется неповрежденным), я могу изменить файлы XML, повторно заархивировать их с помощью WinRAR и легко открыть во Flash CS6.   -  person Triynko    schedule 30.04.2013
comment
Почему 7-Zip не может открывать некоторые архивы ZIP? В 99% случаев это означает, что архив содержит неверные заголовки. Другие программы ZIP могут открывать некоторые архивы с неправильными заголовками, поскольку эти программы просто игнорируют ошибки. Если у вас есть такой архив, не звоните разработчикам 7-Zip по этому поводу. Вместо этого попробуйте найти программу, которая использовалась для создания архива, и сообщите разработчикам этой программы, что их программное обеспечение несовместимо с ZIP.   -  person Triynko    schedule 30.04.2013


Ответы (4)


Я потратил дни на поиски в Интернете, чтобы увидеть, есть ли что-нибудь, чтобы сделать реверс-инжиниринг, но на самом деле ничего не вышло. Я не знаю, существует ли спецификация .FLA. Последние пару дней я искал. Если бы он был, и вы его использовали, вы бы получили письмо о прекращении и воздержании от Adobe, за которым следовало бы уведомление о прекращении действия Закона США "Об авторском праве в цифровую эпоху" (DMCA) в Канаде.

Согласно Википедии, это двоичный формат, основанный на спецификации формата составных файлов Microsoft Binary, описанной здесь, в Википедии. Формат составного файла. Но, как ни странно, я думаю, что европейские антимонопольные соглашения, вынуждающие Microsoft публиковать свои спецификации, означают, что вы можете загрузить формат составного файла MS здесь, введя формат составного файла Microsoft в Google. Первая запись - это ссылка для скачивания.

После того, как вы его изучите, вам необходимо собрать набор инструментов. Возможно, есть декомпилятор для этого формата от MS. Если нет, то вам понадобится 3-6 месяцев работы, чтобы собрать базовую спецификацию.

В начале 90-х я полностью изменил архитектуру протокола Novell IPX и стека NCP, который заключался в отправке сообщений на сервер и получении ответа. Так что это довольно механически и утомительно, через несколько месяцев у нас было действительно хорошее представление о том, что нам нужно, и мы построили карту вызовов протокола IPX и ответов. То же и с NCP. В конце концов, к нам связалась Novell, которая отправила нам приказ о прекращении действия и в конечном итоге захотела подать на нас в суд. Но в конце концов они разобрались, потому что мы использовали методы чистых комнат Википедия объяснила чистые комнаты . Мы в значительной степени отделили его от серверного продукта в двоичном формате, используя анализатор пакетов, и перестроили его с помощью C ++. Но это был реверс-инжиниринг протокола. Намного проще того, о чем вы думаете.

Итак, первое, что вам понадобится, это дизассемблер. Я не могу дать вам совет, какой из них использовать, но их много. После того, как вы получите формат и дизассемблируете файл, вы должны попытаться определить заголовки, нижние колонтитулы, константы, такие вещи, как специальные последовательности символов, чтобы можно было приступить к созданию карты. Например, на странице 6 формата составного двоичного файла Windows указано, что _absig имеет формат подписи DOCF 11E0 A1B1 1AE1. Если вы можете найти такую ​​информацию в файле, вы запустите карту.

Но прежде чем углубляться в детали, посмотрите, не является ли это декомпилятором. Я думаю, что большинство декомпиляторов, которые вы найдете в Google, возможно, будут легковесными. Посещайте подобные хакерские группы. CrackZ. Этот продукт IDA является дизассемблером. Это может помочь. Введение в обратный инжиниринг. Сообщество обратного инжиниринга

Надеюсь, что это поможет. Если да, то сделай это. На это уйдут месяцы. Настойчиво!

person scope_creep    schedule 05.10.2009
comment
Я задаюсь вопросом о прекращении и воздержании, поскольку несколько компаний делают декомпиляторы SWF-to-FLA. Они достаточно четко разобрались со спецификацией FLA, чтобы снова превратить SWF в редактируемые FLA. Мне было интересно, работали ли они с какой-то опубликованной спецификацией или их исследования являются собственностью. - person Soviut; 06.10.2009
comment
Я не знаю, так как я не смог найти ничего конкретного, даже набросков или какой-либо основной работы, или даже обсуждений. Я подозреваю, что он был хорошо защищен, поскольку фактически является стандартом для веб-фильмов. Если бы реклама действительно выполняла свою работу, я подозреваю, что они сочли бы ее собственностью и защитили бы ее. Может быть, у некоторых хакерских групп есть что-то доступное. Может быть, стоит посетить, если у вас есть время, конференции хакеров в черной шляпе, спросите о них, посмотрите, получите ли вы зацепку. Также может случиться так, что вы разгрузите работу, если пойдете по этому пути. Это вдали от берега. Может быть, русским отдать. - person scope_creep; 06.10.2009
comment
Я только что читал новые руководящие принципы предполагаемой совместимости, которые MS опубликовала как часть соглашения Европейской антимонопольной комиссии, и похоже, что будет опубликована полная спецификация для этого формата двоичного составного файла вместо имени поля. - person scope_creep; 07.10.2009
comment
Вам не нужно создавать / находить специальные инструменты для работы с составными документами MS. Есть встроенные функции Win32. - person Samuel Neff; 25.01.2010

Следует отметить, что все файлы FLA, сохраненные в CS5 или более поздней версии, теперь технически являются файлами ZIP, которые используют открытый формат XFL. Фактически вы можете переименовать FLA-файл в ZIP и распаковать его. Впоследствии Flash поддерживает сохранение непосредственно в формате XFL.

Формат XFL - это структура папок, состоящая из файлов и папок, которые соответствуют типичному файлу Flash. К ним относятся папки для библиотеки и двоичных данных (изображения, аудио и т. Д.), А также файлы XML, которые описывают геометрию, анимацию и т. Д. Существуют также файлы XML, которые отслеживают глобальные настройки проекта, такие как связи и настройки экспорта. .

Наконец, есть файл .XFL, который действует как точка входа для всей структуры. Это то, что ищет Flash, когда сканирует папки, чтобы определить, являются ли они проектами Flash XFL.

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

person Soviut    schedule 14.11.2012
comment
Интересный. И это действительно работает. Я мог извлечь FLA-файл с помощью 7zip и получить кучу файлов, один из которых назван Contents, а некоторые другие файлы со странными именами, например S 931 1354134895, их много. Но что теперь? Все они кажутся двоичными файлами, ничего похожими на строки внутри. Меня интересует извлечение из них данных векторной графики, чтобы как-то преобразовать их в SVG. - person SasQ; 21.08.2013
comment
В идеале вам нужно повторно открыть проект во Flash и сохранить его в формате XFL. Это создаст наиболее удобочитаемую файловую структуру. - person Soviut; 21.08.2013
comment
Если бы у меня был Flash ... И Windows ... Нет. Это был бы кошмар: s Я пытаюсь сделать это на своем Linux, без Windows и Flash. У меня для начала есть эти FLA-файлы. - person SasQ; 21.08.2013
comment
Файлы FLA должны быть созданы в версии CS5 или более поздней (я пояснил это в своем ответе). Я только что провел тест в CS6, сохранил FLA-файл с некоторыми элементами библиотеки, переименовал его в zip-файл, а затем распаковал. Библиотека была названа правильно и имела правильную структуру. Так что вы, вероятно, имеете дело со старыми файлами FLA. - person Soviut; 28.08.2013
comment
Так что, если вы действительно хотите их преобразовать, вам придется укусить пулю, получить лицензию на Flash, написать простой скрипт JSFL для открытия и сохранения документов в последней версии. Не очень удобно, но и не невозможно; Я все время создавал подобные сервисы конвертации в анимационной студии, в которой когда-то работал. Вы даже можете заставить их запускаться по мере необходимости на инстансе Amazon EC2 под управлением Windows; Разверните облачный сервер, преобразуйте пакет файлов, а затем удалите все с помощью автоматизированного сценария. Я уверен, что у вас нет проблем с написанием шатких пакетных сценариев, это ничем не отличается. - person Soviut; 28.08.2013

Хотя официальной документации нет, этот парень попытался хотя бы в некотором первичном анализе.

Формат fla | benjaminwolsey.de http://benjaminwolsey.de/node/49

person Maksee    schedule 05.03.2010

Вы можете проверить спецификацию файла SWF: http://www.adobe.com/devnet/swf/

person Mohamad A. Hasan    schedule 25.01.2010
comment
Я знаю, что доступна спецификация SWF, меня больше интересует формат FLA, чтобы я мог предварительно заполнить сцены, над которыми потом нужно работать нашим аниматорам. - person Soviut; 25.01.2010
comment
Что ж, я мог бы здесь порассуждать; Но я думаю, что за такие вещи нужно платить. декомпилятор sothink (swf-decompiler.com) может разложить файл на fla и flex; Я считаю, что между ними и Adobe есть своего рода соглашение о файловой структуре fla, поскольку я нигде больше этого не вижу. P.S .: Меня также интересует файловая структура fla, так как мне надоела флэш-среда AS IDE, и я хочу разработать некоторые инструменты, которые мне нужны, чтобы облегчить мою жизнь :) - person Mohamad A. Hasan; 05.02.2010