Как мне лучше всего преобразовать приложение AS1 / AS2 в приложение ActionScript3?

У меня есть программа, состоящая из нескольких файлов SWF. AS2-SWF загружает группу файлов AS1-SWF. Ужасная программа. Я хотел бы указать графический интерфейс в MXML и, возможно, провести рефакторинг кода до AS3. Однако преобразование всех 300+ символов в AS3 или что-то еще невозможно.

Какие у меня есть варианты преобразования в AS3 / Flex / MXML? Приложение очень простое, только довольно большое. Он состоит только из кнопок, фонов и текстов внимания. Все тексты кнопок находятся в файлах XML.

Я хочу как можно скорее превратить это в красивый код, но также контролируемый, чтобы код стал:

  1. легко обновляемый / обслуживаемый,
  2. удобочитаемый
  3. обучаемый (так что я могу сделать обновление кем-то, кто может только скрипт AS3 или даже MXML).

Конечно, делаю это по собственной инициативе, если на это уйдет больше недели, я не смогу найти время.

С уважением, Юрген


person JurgenW    schedule 06.04.2009    source источник


Ответы (2)


Это может помочь:

http://flexman.info/2009/03/29/as3converter-an-ant-task-small-collection-of-as3/

Это в основном для кода AS2, поэтому о редактировании FLA не может быть и речи. Но вы обязательно должны изучить JSFL.

Есть несколько довольно хороших скриптов, которые уже имеют дело с чем-то вроде этого:

http://bumpslide.com/blog/2009/03/07/jsfl-class-generator/

Что делает эта команда, так это то, что она просматривает вашу библиотеку и находит все элементы библиотеки, которые имеют настраиваемое имя класса связывания. Если класс расширяет flash.display.MovieClip (или если базовый класс пуст), он проверяет, существует ли файл класса, а если нет, он создает его для вас. При этом сценарий просматривает все элементы на временной шкале и добавляет соответствующие свойства в ваш класс. Если эти клипы являются экземплярами других компонентов, они будут набраны как таковые, и соответствующие операторы импорта будут автоматически добавлены в ваш класс. Если ваш компонент настроен на расширение какого-либо другого класса (например, com.bumpslide.ui.Button), класс не будет создан. Файлы классов будут записаны в правильное расположение пакета внутри первого настраиваемого пути к классу, определенного в настройках публикации.

person Community    schedule 08.04.2009
comment
Привет, спасибо за оба ответа, они очень полезны. Моя главная проблема - это код AS1, который находится в файле .fla. Быстрый поиск невозможен, на что уходит много времени. - person JurgenW; 09.04.2009
comment
Первая опубликованная вами ссылка, Ramsey, выглядит полезной, однако место для загрузки уже недействительно. Он ссылается на страницу с тремя файлами, ни один из которых не является программой преобразования. Я изучу обратный инжиниринг swf, так что, возможно, я получу кучу почти читаемых файлов AS. - person JurgenW; 09.04.2009
comment
Я также попробую этот инструмент JSFL. Я думаю, что очень вероятно, что у меня возникнут огромные проблемы с областью видимости, потому что объекты, которые имеют свой код в разных SWF, разговаривают друг с другом, используя _root object = / или объект stage. Или просто строки, которые могут или не могут ссылаться на объект :-( - person JurgenW; 09.04.2009
comment
Если я запускаю программу в режиме отладки, я получаю огромное количество методов и свойств, которые не найдены, я добавляю следы в код, который я изменил, поэтому я, по крайней мере, иногда могу видеть, где находится ошибка. PS: Почему я не могу публиковать более двух строк каждые 30 секунд .. = / - person JurgenW; 09.04.2009

Юрген, я сочувствую тебе ... похоже, много работы.

Какие у вас проблемы? все ли SWF-файлы можно рассматривать как разные классы? есть ли много совпадений в логике или каждый объект играет определенную роль?

Я думаю, что наличие такого количества разных SWF может привести к проблемам с областью видимости,> с которыми SWF взаимодействует. вы можете настроить что-то с as3, которое использует существующие части, а затем попытаться создать фасад поверх существующего кода> использовать существующую логику в swfs и выполнить визуальную часть через mxml. кроме этого, все, что я могу посоветовать, - это перестройка. вам может понадобиться декомпилятор swf, если вам не хватает некоторых из исходных файлов fla.

person Assembler    schedule 06.04.2009