![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2002
Адрес: https://webhamster.ru
Сообщений: 107
|
Здравствуйте дорогие флешеры.
Доканало меня окончательно пользование Eclipse на ноутбуке с 256Mb озу, и решил я переползать с FDT на FlashDevelop. Для начала взял небольшой проектик, перенес его в FlashDevelop. Проект - просто тестовый, подключает один внешний swf, и печатает список всех мувиков. Такой же, как обсуждался здесь. Так вот, данный проект, скомпиленый в Eclipse, выдает такой список мувиков First run giperTrace _level0 _level0.resource _level0.resource.mcCellBall _level0.resource.mcCellEnemyPlayer _level0.resource.mcCellCommandPlayer Second run giperTrace _level0 _level0.resource _level0.resource.commandplayer0 _level0.resource.mcCellBall _level0.resource.mcCellEnemyPlayer _level0.resource.mcCellCommandPlayer First run giperTrace [object Object] [object Object] [object Object] [object Object] [object Object] Second run giperTrace [object Object] [object Object] [object Object] [object Object] [object Object] [object Object] Напоминаю - весь код проекта в 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? |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Попробывать указать все пути к классам. В строке Eclipse есть параметр "-cp C:\WORK\ECLIPSE_WORKSPACE\flashos\src" которого нет в FD.
Надо зайти в свойства меню Project, вкладка Classpaths и посмотреть какие пути стоят для классов проекта и глобальные пути. |
|
|||||
|
Регистрация: Mar 2002
Адрес: https://webhamster.ru
Сообщений: 107
|
В Eclipse путь C:\WORK\ECLIPSE_WORKSPACE\flashos\src - это путь к файлам классов проекта (грубо говоря к рабочей директории c AS2 стриптами).
Для FlashDevelop попробовал добавить путь к директории проекта, в которой лежат классы. (Думаю что для FlashDevelop это делать бессмысленно, но попробовал). Результат тот же. Мужет быть это из-за того, что FlashDevelop как-то определяет extend-информацию для класса, и принудительно делает его объектом, даже если используется хак для связывания с мувиклипом? Если находясь на закладке с любым as-кодом, в панеле навигации переключиться на закладку ActionScript, то для любого as-кода в отображаемом дереве будет раздел Extends, в котором находится object.as следующего содержания intrinsic class Object
{
function Object();
function watch(name:String, callback:Function, userData:Object):Boolean;
function unwatch(name:String):Boolean;
function addProperty(name:String, getter:Function, setter:Function):Boolean;
function toString():String;
function valueOf():Object;
function hasOwnProperty(name:String):Boolean;
function isPrototypeOf(theClass:Object):Boolean;
function isPropertyEnumerable(name:String):Boolean;
function toLocaleString():String;
static function registerClass(name:String, theClass:Function):Boolean;
static var prototype:Object;
var constructor:Object;
var __proto__:Object;
}
|
|
|||||
|
Регистрация: Mar 2002
Адрес: https://webhamster.ru
Сообщений: 107
|
Блин, ну я уже не знаю что делать. Начались тупые пляски с бубном. Упростил пример, убрал лишнее, оставил только задействованый код. Выкладываю сюда.
Уважаемый iNils, не могли бы вы открыть проект в вашем FlashDevelop-е, и сказать какой лог в результате у вас? Обратите внимание на то, что в giperTraceRecurse() условие не даст печатать путь для объектов, не являющихся мувиклипами. Следовательно, появление строк [object Object] - это перечисление таких странных мувиков, у которых отсутсвует this? Так же обратите внимание, что в onLoadResourceMovie() после выполнения в команды // Копирование мувиклипа из ресурсов
scopeRef.resource.mcCellCommandPlayer.duplicateMovieClip("commandplayer0",15);
Еще один момент - если скомпилированный swf открыть во Flash IDE и посмотреть Object List, то все мувиклипы видны (оставил в листинге только мувики) Level #0: // кстати _level0 то же мувиклип, см. список мувиков в первом посте Movie Clip: Frame=1 Target="_level0.resource" Movie Clip: Frame=1 Target="_level0.resource.mcCellCommandPlayer" Movie Clip: Frame=1 Target="_level0.resource.mcCellEnemyPlayer" Movie Clip: Frame=1 Target="_level0.resource.mcCellBall" Movie Clip: Frame=1 Target="_level0.resource.commandplayer0" |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Это какие то проблемы класса FlashOut. Вместо trace(o) я поставил trace("+" + o) и сразу же трейсе пошли мувиклипы.
UPD. Точно, в FlashOut один метод, который делает msg.toString()... Это и создает проблемы. Если в самом флеше написать то результатом будет [object Object] Последний раз редактировалось iNils; 18.07.2007 в 18:02. |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Тогда можно такую приставку приделать:
Это, правда, вернет в слеш-нотации. |
|
|||||
|
Регистрация: Mar 2002
Адрес: https://webhamster.ru
Сообщений: 107
|
Вот жеж, никогда бы этот вопрос не решил, спасибо!
Метод исправления выбрал такой - в каталоге куда установлен FlashDevelop находим подкаталог Library\org\flashdevelop\utils. Там будет лежать файл FlashOut.as. Заменяем его содержимое на И трассировка начинает работать правильно. |
|
|||||
|
2 iNils и xintrea:
Друзья! Поделитесь Snippetами для Flashdevelop!
__________________
Однозначно! |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|