Среда разработки Flash MX 2004 имеет один чудесный баг, после повторяющихся проявлений которого хочется расстрелять разработчиков из гранатамета, или, еще лучше привязать их к столу и капать водой им на лоб, пока они не сойдут с ума.
Все дело в том, что если есть fla-файл, использующий внешний AS-файл, в котором определен класс, то при компиляции этот класс каким-то образом кешируется, и при следующей компиляции кеш очищается не всегда. В результате после определенного изменения при попытке компиляции среда смотрит, что в кеше лежит измененный класс, но немного другой, и гордо выплевывает фразу вида “**Error** С:\path\to\class\YourClass.as: Line 2: The name of this class, ‘YourClass’, conflicts with the name of another class that was loaded, ‘YourClass’.
{”.
Самое ужасное в этой ошибке, что в ее появлении пользователь не виноват, и никаких причинно следственных связей достоверно установить не удалось, хотя есть предположения.
- Удалить кеш объектов из каталога L:\Documents and Settings\%USER%\Local Settings\Application Data\MacromediaFlash MX 2004\en\Configuration\Classes\aso. Как показал опыт, не помогает.
- Сделать так, чтобы дата последнего изменения fla-файла была позже, чем дата изменения as-файла. Не помогает.
- Некоторые колдуют, запуская проверку синтаксиса по Ctrl-T. Опять таки, не было выявлено явной причинно-следственной связи.
Как показала практика, ошибка просто исчезает сама по себе, через некоторое время, скажем 5 минут. Вот такая китайская пытка.
UPDATE: Решилась проблема следующим путем. Оказалось, что проблема отчасти не только программы. Файлы проекта хранились на расшаренном диске сервера, а на сервере часы шли немного вперед, как раз на пару минут. В первый раз все компилировалось нормально, а после первого сохранения, сервер проставлял на файле дату немного в будущем. Из-за этого происходила ошибка, и компилятор не удалял класс из кеша при перекомпиляции. После того, как на рабочей машине часы были переставлены вперед, проблема исчезла.
Оригинал:
http://blog.dpetroff.ru/tech/flash-mx-2004-compilation-error