Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Игнорирование кода при миграции AS1=>AS2 (http://www.flasher.ru/forum/showthread.php?t=156581)

BuKT 24.05.2011 11:36

Игнорирование кода при миграции AS1=>AS2
 
Суть:
Есть некий старый проект (> 8 лет) писанный и рисованный на AS1. Необходимо произвести его миграцию в AS2 из-за вопросов совместимости с современными апи-классами. По возможности - с минимальными изменениями.
При компиляции CS4/CS5 как AS1-код - флешка играется и отображается правильно. При попытке скомпилировать как AS2 - начинаются чудеса. Весь код первого кадра (не важно, stop() это, trace или include) начисто игнорируется. Ролик переходит в следующий кадр, корректно обрабатывает и стоп и трейс и прочий возможный код.

Вот тут, например, советуют сместить главную сцену на кадр вперёд, выставив на старте пустой кадр. Однако, код изобилует _root.gotoAndSomething(), а в глаза автору посмотреть не представляется возможным. Сам я пишу в основном на AS3, и разбираться в AS1/2 коде для меня весьма затратно по времени.

Есть ли какой-нибудь альтернативный выход?

Проблема решилась крайне внезапно.
Оказывается, если на самом кадре лежит некий код, часть которого по той или иной причине вызывает ошибку - весь код на кадре перестаёт выполняться.

mooncar 24.05.2011 11:46

Обратиться в Вакансии, чтобы не тратить свое время на эту миграцию.

dark256 24.05.2011 11:47

То, что было наисано ВОСЕМЬ лет назад, имхо, проще переписать с нуля. Тем более при "совместимости с современными апи-классами" эта необходимость так или иначе вылезет во всей своей красоте и масштабности.

BuKT 24.05.2011 11:53

Цитата:

Обратиться в Вакансии, чтобы не тратить свое время на эту миграцию.
Нет, если другого выхода нет - придётся делать самому, несомненно. Но вот если был бы какой-нибудь заповедный метод, о котором знают местные, и который переходит из проекта в проект не появляясь в выдаче гугла - это было бы замечательно.

Добавлено через 42 минуты
Проблема решилась крайне внезапно.
В первом кадре:
Код AS1/AS2:

stop();
#include "some.as"
#include "someOther.as"

some.as:
Код AS1/AS2:

<...> //Some code
_root.getURL("FSCommand:showmenu", false); // Закомментировав эту строку я решил проблему
<...> //Some other code

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

В моём случае компилятор ругался на "несоответствие типов" в некой десятой строке, при длине кода кадра в три строки (как видно выше). По собственной глупости я решил не обращать на эту ошибку внимания, не зная принципов действия инклюда (если я верно понял - он просто весь код .as-файла пишет вместо себя).

Топик я переименую в "решённый", но если возможно - помогите придумать, чем можно заменить FSCommand?

Не нашёл, как переименовать :( Если можно, я хотел бы попросить об этом модератора. А потом совсем обнаглеть, и попросить поставить ссылку на эту тему в этой теме. Мало ли, до той темы гугль дойдёт, а до этой - нет. А людям мучиться потом.

dark256 24.05.2011 12:44

fscommand - в хэлпе почитайте :)


Часовой пояс GMT +4, время: 23:32.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.