![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2006
Сообщений: 85
|
я в шоке - такого я за 15 лет еще не встречал...
вообщем, есть большой проект на классах - всякие иерархии, в частности: City extends Field extends MapObject extends... в частности, у них есть метод createFromXML - по которому каждый класс берет из узла то, что ему нужно. естественно, они по иерархии вызывают соотв. метод из наследуемого класса. так вот: в методе createFromXML класса Field: super.createFromXML вызывает САМ СЕБЯ, т.е. Field.createFromXMLNode!!! т.е. этот код вызывается два раза - один раз из наследника, и второй раз - из самого себя, как будто super указывает на класс Field, а не на наследуемый класс MapObject. кто-нибудь сталкивался с таким??? да, это новый Flash CS 3, забыл упомянуть... и что с этим всем делать теперь? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Весь код всех классов пожалуйста.
|
|
|||||
|
Регистрация: Nov 2006
Сообщений: 85
|
да не вопрос, в принципе
аттач. речь идет о классе map.Fieldтолько сам ролик я сюда не могу закачать (весит 900 кило), да и локально его поднять все равно не получится ![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Что-то у меня есть большие сомнения, что проблема именно в этом месте. Для начала неплохо было бы убрать лишние вызовы данного метода.
|
|
|||||
|
Регистрация: Nov 2006
Сообщений: 85
|
о каком месте идет речь? и что значит "лишние" вызовы?
я прежде чем писать, долго это все тестировал. пришел к однозначному выводу, что super.createFromXML в классе Field вызывает сперва Field.createFromXML, а затем уже MapObject.createFromXML |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Там в разных классах полно вызовов этих самых createFromXML. Но мне неначем тестить, ибо сами по себе эти классы не работают у меня.
|
|
|||||
|
Регистрация: Nov 2006
Сообщений: 85
|
вот еще небольшое пояснение:
function Field.createFromXML(node) {
trace("Field.createFromXML");
//super.createFromXML(node);
}
City.createFromXML Field.createFromXML если убрать комментарий (и больше НИЧЕГО не менять): City.createFromXML Field.createFromXML Field.createFromXML MapObject.createFromXML createFromXML вызывается сверху донизу по иерархии класса при построении объекта из xml. в каждом методе вызывается super. тестить это сложно - надо яву поднимать ![]() Последний раз редактировалось etc; 17.07.2007 в 23:09. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
firelord, не надо клепать посты подряд по N штук, это расценивается, как флуд, надо отредактировать свой последний.
Я сейчас соберу пару классов и проверю. |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 85
|
прошу прощения, буду внимательнее... нервы уже сдают...
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Это проблема, наблюдаемая в конкретном проекте. Мне не удалось воспроизвести её. Сделал связку BaseClass > TestClass > AnotherTestClass (в BaseClass ничего нет, в TestClass описан метод, в AnotherTestClass метод переписан и вызывает сначала метод супер-класса), никаких проблем не наблюдаю. Вполне возможно, где-то конфликт имен переменных, пакетов, замещение классов и т.п. неприятности.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 12:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|