![]() |
Eclipse и FlashDevelop - код один, результат разный!
Здравствуйте дорогие флешеры.
Доканало меня окончательно пользование Eclipse на ноутбуке с 256Mb озу, и решил я переползать с FDT на FlashDevelop. Для начала взял небольшой проектик, перенес его в FlashDevelop. Проект - просто тестовый, подключает один внешний swf, и печатает список всех мувиков. Такой же, как обсуждался здесь. Так вот, данный проект, скомпиленый в Eclipse, выдает такой список мувиков Код:
First run giperTraceКод:
First run giperTraceНапоминаю - весь код проекта в Eclipse и FlashDevelop полностью идентичен. Строка компилирования в Eclipse C:\TOOLS\win\MTASC_compiler\mtasc.exe -swf C:\WORK\ECLIPSE_WORKSPACE\flashos\deploy\application.swf -cp C:\WORK\ECLIPSE_WORKSPACE\flashos\src -main application.as -trace Flashout.traceReplacer -header 800:600:20 -cp C:\TOOLS\win\MTASC_class Строка компилирования в FlashDevelop C:\Program Files\FlashDevelop\tools\fdbuild\fdbuild.exe "C:\WORK\ECLIPSE_WORKSPACE\flashos_fd\flashos\flashos.fdp" -cp "C:\TOOLS\win\MTASC_class" Подозреваю, что различие в результатах компиляции идет из-за каких-то настроек FlashDevelop. Поковырял, поменял некоторые, результата не увидел, поставил на место. Вопрос - где чего во FlashDevelop надо крутануть, чтобы получить результат, идентичный в Eclipse? |
Попробывать указать все пути к классам. В строке Eclipse есть параметр "-cp C:\WORK\ECLIPSE_WORKSPACE\flashos\src" которого нет в FD.
Надо зайти в свойства меню Project, вкладка Classpaths и посмотреть какие пути стоят для классов проекта и глобальные пути. |
В Eclipse путь C:\WORK\ECLIPSE_WORKSPACE\flashos\src - это путь к файлам классов проекта (грубо говоря к рабочей директории c AS2 стриптами).
Для FlashDevelop попробовал добавить путь к директории проекта, в которой лежат классы. (Думаю что для FlashDevelop это делать бессмысленно, но попробовал). Результат тот же. Мужет быть это из-за того, что FlashDevelop как-то определяет extend-информацию для класса, и принудительно делает его объектом, даже если используется хак для связывания с мувиклипом? Если находясь на закладке с любым as-кодом, в панеле навигации переключиться на закладку ActionScript, то для любого as-кода в отображаемом дереве будет раздел Extends, в котором находится object.as следующего содержания Код:
intrinsic class Object |
Object.as в Extends у меня виден только если не задан extends или там Object, а так все гуд. То есть я напишу
class NewClass extends MovieClip то в Extends у меня будет указан MovieClip |
Вложений: 1
Блин, ну я уже не знаю что делать. Начались тупые пляски с бубном. Упростил пример, убрал лишнее, оставил только задействованый код. Выкладываю сюда.
Уважаемый iNils, не могли бы вы открыть проект в вашем FlashDevelop-е, и сказать какой лог в результате у вас? Обратите внимание на то, что в giperTraceRecurse() условие Код:
if(typeof(o)!='movieclip' || _checked_[o._target] ) return;Так же обратите внимание, что в onLoadResourceMovie() после выполнения в команды Код:
// Копирование мувиклипа из ресурсовЕще один момент - если скомпилированный swf открыть во Flash IDE и посмотреть Object List, то все мувиклипы видны (оставил в листинге только мувики) Код:
Level #0: // кстати _level0 то же мувиклип, см. список мувиков в первом посте |
Это какие то проблемы класса FlashOut. Вместо trace(o) я поставил trace("+" + o) и сразу же трейсе пошли мувиклипы.
UPD. Точно, в FlashOut один метод, который делает msg.toString()... Это и создает проблемы. Если в самом флеше написать Код:
trace (_root.toString ()); |
Тогда можно такую приставку приделать:
Код:
MovieClip.prototype.toString = function(){ return this._target; } |
Можно определять по typeof является ли объект мувиклипом и toString для него убирать.
|
Вот жеж, никогда бы этот вопрос не решил, спасибо!
Метод исправления выбрал такой - в каталоге куда установлен FlashDevelop находим подкаталог Library\org\flashdevelop\utils. Там будет лежать файл FlashOut.as. Заменяем его содержимое на Код:
class org.flashdevelop.utils.FlashOut |
2 iNils и xintrea:
Друзья! Поделитесь Snippetами для Flashdevelop! |
| Часовой пояс GMT +4, время: 08:54. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.