Просмотр полной версии : проблема с именем класса
humble david
17.01.2007, 11:12
При проверке внешенего файла-класса - выдает ошибку, что класс с таким именем уже загружен - короче, конфликт имен. Но такого класса больше нет!
Я вношу в класс изменения, компилю весь проект, а он работает по старому, то есть, какбы где-то у него таки этот класс сидит...Вот где?!
Подскажите пожалуйста, в чем может быть дело?
Удали ASO файлы (есть пункт в меню).
humble david
17.01.2007, 12:00
Спасибо. А в каком меню???
humble david
17.01.2007, 16:59
пункта в меню не нашел...но просто удалил папку с ASO файлами. не помогло
Тогда смотри, может забыл прописать новый класс для мувиклипа.
humble david
17.01.2007, 17:20
Да ему вообще по-моему не важно, что у меня где прописано, он пишет
"The name of this class, 'ClassicTileBuilder', conflicts with the name of another class that was loaded, 'ClassicTileBuilder'"
и так для кучи классов.
дали проект подправить, выслали кучу файлов - а там такие лажы тварятся...
Перемести проект в другую папку.
humble david
17.01.2007, 19:03
пробывал тоже.
на разных форумах нашел подобные проблемы, но предлагаемые способа - перевести время, очистить асо-кеш не помогают. Как сказал, я не сам создавал проект, и у меня вообще таких файлов не было, но получил на доработку и сразу не могу перекомпилить...
Ну тогда мне сложно чем-либо помочь.
humble david
17.01.2007, 19:27
спасибо
humble david
17.01.2007, 19:29
здесь порылся - еще увидел, что проблема может быть в том, что имя одного класса встречается в именах всех других, которые не компилятся. Может дело в этом. Но тогда возникает вопрос, почему у заказчика компилился??? (я так думаю...)
Это попробую - отпишу.
если Кто еще что скажет буду признателен.
Возможно, не прописаны какие-то пути к классам. А если есть классы с теми же именами, то их нужно убрать.
humble david
18.01.2007, 12:19
да не, все в одной папке и названия вооще разные, но как говорил одно наследует другое. например - Tile, TileSet, TileBuilder,ClassicTileBuilder. Посидел поменял, чтобы такого наследства не было - не помогает.
Кроме того в классах есть взаимные ссылки - читал, что в этом тоже может быть проблема. Но устранять как кажется слишком сложно, и у заказчика же както компилился...
humble david
18.01.2007, 13:17
так и есть. проблема, по-видимому, во взаимных ссылках. все классы кроме одного очистил - и он компилиться нормально. переделывать всю систему конечно буду вряд ли. Вопрос тот же остается, как он у прежнего разработчика компилился...
У него и надо спросить, собственно.
humble david
18.01.2007, 13:55
его нет... то есть он не доступен. отписал заказчику - узнал это. написал о проблему, думал заберет проект да и дело с концом. а нет! предложил увеличить бюджет, лишь бы заказ сделал. вот и думай... хоть всю структуру классов меняй!
Тут еще одна мысль мне лезет в голову. я всегда работаю во флеше 7, 8. может прежний разработчик работал в другой среде... а вот в какой? да я и не знаю больше ниче...
Возможно, он компилировал mtasc-ом.
humble david
18.01.2007, 14:23
а где можно взять??
humble david
18.01.2007, 16:26
скачал. стараюсь научиться его юзать, что-то видно не правильно где-то пишу, потому что после запуска "compile.bat" дает сообщение:
"mtasc.exe не является пвнутренний или внешней командой, мсполняемой программой или пакетным файлом"
в переменных среды прописал имя:
mtasc.exe
значение:
C:\Program Files\mtasc\mtasc.exe
вот содержимое батника:
mtasc.exe TileSet.as TileClass.as TileBuilderClass.as SquareTileBuilder.as GamesList.as GameConfiguration.as Game.as EnterYourName.as Clock.as ClassicTileBuilder.as Board.as BirdTileBuilder.as ArlequinTileBuilder.as -swf Jigsaw.swf
pause
Адрес должен быть C:\Progra~1\…
А вообще, проект должен быть скомпилирован сначала в самой IDE :D
humble david
19.01.2007, 11:40
Все работает. То есть при компиляции тех классов та ошибка выдается все равно, но компилятор всего проекта работает нормально. Ошибку нужно просто игнорировать...Это установлено.
Благодарю за участие в обсуждении. Узнал кучу всего нового.
Бармалей
19.01.2007, 13:55
Глюки Flash-компиллера - это вообще тема для отдельного разговора. Вот вчера столкнулся.
В классе объявлены следующие свойства:
// Контейнер для всего загрузчика.
private var container_mc:MovieClip;
// Клип с загрузчиком в виде круга.
private var loader_mc:MovieClip;
// Текстовое поле, в котором поясняется, что загружается в данный момент.
private var description_txt:TextField;
Есть такой метод:
/**
* Выстраивает представление.
*/
private function buildView(target:MovieClip, depth:Number,
x:Number, y:Number):Void {
container_mc = target.createEmptyMovieClip("loader_container_" + depth, depth);
loader_mc = container_mc.attachMovie("loaderSymboll", "loader_symboll", 0);
container_mc.createTextField("description", 1, 0, 20, 0, 0);
description_txt = container_mc["description"];
}
Обратите внимание на последние 2 строчки. Вот такой костыль пришлось использовать вместо
description_txt = container_mc.createTextField("description", 1, 0, 20, 0, 0);
потому что компилер выдавал ошибку, что мол нельзя присваивать Void где требуется TextField.
Бармалей, а ты под какую версию компилишь-то? :)
Returns
TextField - Flash Player 8 returns a reference to the TextField object that is created. Flash Player versions earlier than 8 return void.
Это не бага :)
Бармалей
19.01.2007, 15:29
Упс... А в чем логика подобного решения?
Упс... А в чем логика подобного решения?В том, что до 8-ки createTextField ничего не возвращал.
Бармалей
19.01.2007, 15:43
Мда... Век живи - век учись.
humble david
22.01.2007, 15:54
все совсем ясно (конечно кроме ошибок компилятора). Предыдущий разработчик использовал среду - FlashDevelop.
все совсем ясно (конечно кроме ошибок компилятора). Предыдущий разработчик использовал среду - FlashDevelop.Я тоже ее использую. Но компилирую то все равно в Flash IDE.
аналогично..
не совсем в тему: проблему очистки ASO при запуске компиляции в Flash IDE из FlashDevelop решил пока только так: в команде запуска IDE прописано только удаление ASO : т.е. активируется IDE и удалются ASO файлы, потом вручную запускаю тест/паблиш..
а зачем: а потому как если в в той же команде FlashDevelop прописать и запуск test movie, то ASO файлы не успевают удалится и компиляция идет с этой б..ой ошибкой
если у кого есть более складные решения, поделитесь, плиз..
Силин, а ты часто ASO удаляешь? У меня такая потребность... ну может раз в неделю возникает. И я ни когда test movie из FD не запускаю, всегда на флеш переключаюсь.
да так получается что все в классах: т.е. каждый раз приходится.., почему и спрашиваю..
уж больно удобно в FlashDevelop все
к слову , много чего можно было бы и через #include просто вставлять, но все сказочные фичи FlashDevelop напрочь отрубаются для неклассового кода, может ты где встречал решение этой заморочки ?
зы: авторы FlashDevelop на эту тему говорят: сделаем скоро (может быть..), но лучше не дурите, а пишите в классах''
А я и пишу все в классах, но проблемы которые требуют чистки ASO у меня возникают довольно редко.
везет..:)
Nirth тут про критические дни Flash'a говорил в каком-то топике, очень похоже.., кто б раскопал корень этих бед..
а то либо спотыкаешься об этот алерт про конфликт классов, либо компилишь со вчерашнем кодом, либо извращаешься с этим delete ASO files.., причем у всех по разному: угнетает слегка эта неясность..
Про критические дни я говорил :D
Впрочем, проблему это не решает, конечно…
ой сори, обознался/запамятовал..
но как сказал ..
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.