Показать сообщение отдельно
Старый 11.02.2009, 16:10
camelot вне форума Посмотреть профиль Отправить личное сообщение для camelot Найти все сообщения от camelot
  № 8  
Ответить с цитированием
camelot

Регистрация: Jul 2006
Сообщений: 26
после запарок с классом SomeClass выяснилось что проблема с классом ClassAsParent так как все потомки потеряли наследование от него.

я кодю на Eclipse 3.4 (Ganymede) + FDT 3.1.0.11 Enterprise.
Проект на AS2.
Файл класса ClassAsParent был в кодировке винды (то бишь cp1251).
Я работал совсем над другой частью проекта когда появились баги после компиляции. Долго искав, нашёл трабл в том что у класса потерялась наследственность. Парился,парился - пытался заставить наследоваться. Начал этот топик. Потом выяснилось что, что-то не то с классом родителя. Он компилируется без ошибок и в присутствует в swf но другие классы не хотят от него наследоваться.

за последние несколько часов был непонятный прорыв в плане:
1. взял файл класса ClassAsParent
2. убрал весь функционал и методов. короче выкинул всё что можно. остались только строки вида public function someMethod(){return false;}
3. откомпилил - в CS4 - наследования нет.
4. удалил.
5. создал новый файл в кодировке utf8 (BOM)
6. перенес из файла "обрезанный фукнционал" в этот файл код класса.
7. откомпилировал
8. НАСЛЕДОВАНИЕ ПОЯВИЛОСЬ.
9. нарадостях начав грешить на кодировки и т.д. востанавливаю функционал класса.
10. компилирую - наследования нет....
11. создаю новый файл в utf8 (BOM) с обрезаным функционалом (тоесть вернутся к пункту 5.)
12. компилирую
13. наследования нет

сижу разбираюсь дальше

Добавлено через 53 минуты
нашёл строчку которая нарушает наследование:

Код AS1/AS2:
dynamic class obj.action.ActionBasic
{
   ....
	private var _distMax:Number = Lib.grid_radius;
   ....
}
вот часть Lib
Код AS1/AS2:
class Lib
{
   ....
	static var grid_radius:Number = 6;
   ....
}
делаю
Код AS1/AS2:
//private var _distMax:Number = Lib.grid_radius;
наследование востанавливается
есть у кого-нибудь почему так происходит?