Мой опыт показывает, что лучший способ перехода на AS3 - это два этапа: первый - структурный, а второй - синтаксический.
Во-первых, проведите раунды рефакторинга, где вы находитесь в AS2, но постарайтесь максимально приблизиться к архитектуре AS3. Естественно, это включает в себя перемещение всех ваших фрейм-скриптов и скриптов #include в пакеты и классы, но вы можете сделать более тонкие вещи, такие как изменение всех ваших слушателей событий и диспетчеров для следования потоку AS3 (использование статических свойств класса для типов событий и регистрация методом а не по объекту). Вы также захотите избавиться от всех ваших «встроенных» событий (таких как onEnterFrame), и вам нужно внимательно изучить нетривиальное взаимодействие с мышью (например, перетаскивание) и взаимодействие с клавиатурой (например, определить, клавиша нажата). Эта фаза может выполняться постепенно.
Второй этап - преобразование из AS2 в AS3 - изменение «_x» на «x», всех API и так далее. Это не может быть сделано постепенно, вы должны сделать как можно больше одним махом, а затем начать исправлять все ошибки компиляции. По этой причине чем больше вы можете делать на первом этапе, тем больше боли вы избегаете на втором этапе.
Этот процесс работал для меня на достаточно большом проекте, но я должен отметить, что на первом этапе требуется четкое понимание структуры AS3. Если вы новичок в AS3, вам, вероятно, придется попробовать создать некоторые функции, которые вам понадобятся для переноса. Например, если ваш унаследованный код использует цели перетаскивания, вам нужно попробовать реализовать это в AS3, чтобы понять, как ваш код должен будет измениться структурно. Если вы затем реорганизуете свой AS2 с учетом этого, окончательные изменения синтаксиса должны пройти гладко.
Самыми большими подводными камнями для меня были части, которые требовали много вложений, дублирования и перемещения мувиклипов, изменения их глубины и так далее. Все эти вещи нельзя переоценить, чтобы они выглядели как AS3; Вы должны просто смешать все это с новым мышлением и затем начать исправлять ошибки.
И последнее замечание: я действительно не стал бы беспокоиться о таких вещах, как операторы import и override, по крайней мере, до такой степени, чтобы автоматизировать их. Если вы пропустите какой-либо из них, он будет пойман компилятором. Но если вы пропустите структурные проблемы, у вас будет гораздо больше боли.