|
|
|||||
не работает наследование
Доброго времени суток!
уже часа 3 воюю с flash-компилятором, mtasc все правильно делает, родной флешевский компилятор не хочет. Есть 3 класса: ... import view.Contourable; ... class view.Platform extends MovieClip implements Contourable { ... function Platform() { trace("CONSTRUCTOR_PLATFORM"); platforms.push(this); _name="#platform"+(index=platforms.length-1); getContour().draw(0xff0000);//? } ... } ... import view.Platform; ... class view.Bonus extends Platform { ... function Bonus() { trace("CONSTRUCTOR_BONUS"); } ... } import view.Bonus; class view.Detail extends Bonus { static var curDetail:Detail=null; function Detail() { curDetail=this; trace("CONSTRUCTOR"); } function setDetail(level:Number) { gotoAndStop(level); } } конструктор Detail запускается, а конструкторы Bonus и Platform - нет. Причем если унаследовать Detail от Platform - все работает. Что это за особенность такая flash-компилятора и как с ней бороться? Последний раз редактировалось expl; 28.10.2007 в 12:14. |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Попробуйте принудительно его вызвать. Хотя, вроде и так все должно работать.
ps: Выложите пример, чтобы протестировать можно было. Последний раз редактировалось udaaff; 28.10.2007 в 12:49. |
|
|||||
|
|
|||||
Ветеран форума
Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
|
Я вам советую всегда строить мини примеры, оставлять только нужное и проверять если возникают сомнения в функциональности.
http://www.screamge.com/files/extend.rar |
|
|||||
2 screamge:
отдельно мувик протестировал - работает! - вся цепочка конструкторов запусается что-ж такого в связке накурочал - мыслей никаких, mtasс ведь правильно все компилит придется плясать с бубном, переставлять мувики wvxvw: попробовал - ни какой реакции зато стоит добавить мувики из промежуточной цепочки наследования (дополнить промежуточный класс библиотечным символом) - начинают пропускаться вызовы конструкторов - пропуск вызовов конструкторов начинает зависеть от глубины расположения мувиков на экране и просто от наличия символа в библиотеке Последний раз редактировалось screamge; 28.10.2007 в 16:37. |
|
|||||
Ветеран форума
Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
|
пожалуйста объединяйте друг за другом следующие сообщения. Для этого есть кнопка «изменить».
|
|
|||||
Modus ponens
|
Компилил в ЦС3 - там все норм, вечером прийду домой, попробую в восьмерке.
======================================================== upd == Вот, пришел домой. И вправду не компилится... Зато придумал, как конструктор вызвать %) new Bonus(); Вопрос ток зачем =) Просто, очевидно, конструктор будет вызываться либо при наличии мувика на сцене, либо при создании програмно нового инстанса, а в остальных случаях - проигнорируется. Да, вот еще давно хотел спросить. Видел такую же штуку в чужем коде - не понял к чему. Зачем объявлять конструктор как приватную функцию? Она ведь все равно такой не будет? ================================= upd2 ====================== Построил простенький примерчик с таким же наследованием, все вроде работает, но появилась другая мысль... Возможно, в связи с тем, что код частично не в юникодах где-то имеет место быть несоответствие имен? (у меня коменты на русском выглядят как иероглифы %) =========================== upd3 ========================= Вобщем, умаялся... должно работать, а не работает... хз почему =/ Да, еще вот такая странная штука, на попытку trace(super) из класса Detail получился вот такой неожиданный результат: _level0.instance1.#level.instance3
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 29.10.2007 в 00:36. |
|
|||||
Цитата:
Цитата:
конструктор то вызывается, а мувиклип им не обрабатывается - результата нет пробывал так: - вобще не работает Цитата:
Цитата:
Короче нужно учить заказчика mtascом пользоваться, или как-то решать проблему окольными путями, а пока не пришла светлая мысля устранять кучу других багов. Но вот эта философия работы наследования с мувиклипами просто убивает |
|
|||||
Modus ponens
|
Смотри, если по честному, я бы попробовал переписал так, чтобы не наследовать Платформ от МувиКлипа (хз, но по идее должно помочь...) А еще лучше - не создавать инстасы классов аттачем/выкладыванием на сцену... никогда не любил этот способ, вот нашел лишнее тому подтверждение.
__________________
Hell is the possibility of sanity |
Часовой пояс GMT +4, время: 15:33. |
|
« Предыдущая тема | Следующая тема » |
|
|