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