Как лучше всего перенести приложение с ActionScript2 на ActionScript3?

StackOverflow https://stackoverflow.com/questions/101347

Вопрос

Наше приложение написано на ActionScript2 и содержит около 50 000+ строк кода.Мы хотим портировать его на ActionScript3 и пытаемся выяснить, какие у нас есть варианты.Придется ли нам делать это вручную или можно использовать конвертер и каких проблем можно ожидать?

Это было полезно?

Решение

Некоторое время назад я задал аналогичный вопрос, который может оказаться вам полезным:

Как лучше всего перенести существующий проект с Flash 7/AS2 на Flex/AS3?

Некоторые мелкие задачи могут быть автоматизированы (в основном исправление объявлений пакетов), но в остальном я сомневаюсь, что их можно автоматизировать.

Другие советы

У меня всегда были проблемы с переходом из AS2 в AS3, главным образом потому, что для всего процесса нет хороших автоматизированных сценариев, и, честно говоря, это скучно.В долгосрочной перспективе обновление старого кода AS2 в проектах, которые все еще активны и сами обновляются, является отличной идеей, AS3 — просто лучший язык, а AVM2 просто быстрее, чем AVM1.

Вы можете использовать скрипт, чтобы убрать подчеркивания во многих свойствах, добавить информацию о пакете, выполнить некоторые базовые импорты, но то, что я нашел, вероятно, лучший способ для меня — просто сбросить свой основной класс или класс менеджера. в строку класса документа в FLA, закомментируйте все, кроме конструктора, и просто начните конвертировать и раскомментировать по ходу дела.Это может показаться медленным, но мне кажется, что попытка выяснить 40 различных ошибок компилятора одновременно может оказаться медленнее.

Удачи, это необходимая работа, но не веселая работа.

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

Например, ссылка на _level0.variableName в AS2 может указывать на MovieClip на уровне _root, на FlashVar, отправленную из HTML-контейнера, или на объект, созданный самим кодом.Нет реального способа узнать это.(Вы не можете искать имя переменной в коде, поскольку оно также может быть вычислено или прочитано извне.

Для такого преобразования у вас должна быть очень веская причина.Если AS2 по какой-то причине больше не подходит, возможно, вам следует попытаться решить проблему вместо того, чтобы переходить на AS3 только потому, что у нее есть небольшая приятная функция, которая вам нужна.

Доступен некоторый онлайн-сайт для преобразования кода AS2 в AS3.Но по моему прошлому опыту это было не очень хорошо и 100% результат.Многие вещи изменены в AS3.Итак, какую-то часть вы можете автоматизировать, а большинство из вас приходится делать вручную.если вы использовали _global в AS2, вы можете объявить один класс с именем «_global», который будет содержать статические переменные, которые использовали переменные _global.XXXX в AS2.

Просто подумайте о нескольких способах упростить использование функций ООП.Я привожу вам один пример для переменных _global...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top