Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.05.2011, 11:36
BuKT вне форума Посмотреть профиль Отправить личное сообщение для BuKT Найти все сообщения от BuKT
  № 1  
Ответить с цитированием
BuKT
 
Аватар для BuKT

блогер
Регистрация: Dec 2010
Сообщений: 237
Записей в блоге: 5
По умолчанию Игнорирование кода при миграции AS1=>AS2

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

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

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

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


Последний раз редактировалось BuKT; 24.05.2011 в 12:36. Причина: [РЕШЕНО]
Старый 24.05.2011, 11:46
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Обратиться в Вакансии, чтобы не тратить свое время на эту миграцию.
__________________
Идите первым!

Старый 24.05.2011, 11:47
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 3  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
То, что было наисано ВОСЕМЬ лет назад, имхо, проще переписать с нуля. Тем более при "совместимости с современными апи-классами" эта необходимость так или иначе вылезет во всей своей красоте и масштабности.
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 24.05.2011, 11:53
BuKT вне форума Посмотреть профиль Отправить личное сообщение для BuKT Найти все сообщения от BuKT
  № 4  
Ответить с цитированием
BuKT
 
Аватар для BuKT

блогер
Регистрация: Dec 2010
Сообщений: 237
Записей в блоге: 5
Цитата:
Обратиться в Вакансии, чтобы не тратить свое время на эту миграцию.
Нет, если другого выхода нет - придётся делать самому, несомненно. Но вот если был бы какой-нибудь заповедный метод, о котором знают местные, и который переходит из проекта в проект не появляясь в выдаче гугла - это было бы замечательно.

Добавлено через 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?

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


Последний раз редактировалось BuKT; 24.05.2011 в 12:39.
Старый 24.05.2011, 12:44
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 5  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
fscommand - в хэлпе почитайте
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:09.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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