![]() |
не работает наследование
Доброго времени суток!
уже часа 3 воюю с flash-компилятором, mtasc все правильно делает, родной флешевский компилятор не хочет. Есть 3 класса: Код:
...Код:
...Код:
import view.Bonus;конструктор Detail запускается, а конструкторы Bonus и Platform - нет. Причем если унаследовать Detail от Platform - все работает. Что это за особенность такая flash-компилятора и как с ней бороться? |
Попробуйте принудительно его вызвать. Хотя, вроде и так все должно работать.
Код:
function Detail() { |
Вложений: 1
|
Я вам советую всегда строить мини примеры, оставлять только нужное и проверять если возникают сомнения в функциональности.
http://www.screamge.com/files/extend.rar |
Просто в паблиш сеттингс укажи путь к папке view, у меня все откомпилировалось
|
2 screamge:
отдельно мувик протестировал - работает! - вся цепочка конструкторов запусается что-ж такого в связке накурочал - мыслей никаких, mtasс ведь правильно все компилит придется плясать с бубном, переставлять мувики wvxvw: попробовал - ни какой реакции зато стоит добавить мувики из промежуточной цепочки наследования (дополнить промежуточный класс библиотечным символом) - начинают пропускаться вызовы конструкторов - пропуск вызовов конструкторов начинает зависеть от глубины расположения мувиков на экране и просто от наличия символа в библиотеке |
пожалуйста объединяйте друг за другом следующие сообщения. Для этого есть кнопка «изменить».
|
Компилил в ЦС3 - там все норм, вечером прийду домой, попробую в восьмерке.
======================================================== upd == Вот, пришел домой. И вправду не компилится... Зато придумал, как конструктор вызвать %) new Bonus(); :D :D :D Вопрос ток зачем =) Просто, очевидно, конструктор будет вызываться либо при наличии мувика на сцене, либо при создании програмно нового инстанса, а в остальных случаях - проигнорируется. Да, вот еще давно хотел спросить. Видел такую же штуку в чужем коде - не понял к чему. Зачем объявлять конструктор как приватную функцию? Она ведь все равно такой не будет? ================================= upd2 ====================== Построил простенький примерчик с таким же наследованием, все вроде работает, но появилась другая мысль... Возможно, в связи с тем, что код частично не в юникодах где-то имеет место быть несоответствие имен? (у меня коменты на русском выглядят как иероглифы %) =========================== upd3 ========================= Вобщем, умаялся... должно работать, а не работает... хз почему =/ Да, еще вот такая странная штука, на попытку trace(super) из класса Detail получился вот такой неожиданный результат: _level0.instance1.#level.instance3 |
Цитата:
Цитата:
Код:
prototype=new Bonus()пробывал так: Код:
__proto__=Platform.prototype;//?Цитата:
Цитата:
Короче нужно учить заказчика mtascом пользоваться, или как-то решать проблему окольными путями, а пока не пришла светлая мысля устранять кучу других багов. Но вот эта философия работы наследования с мувиклипами просто убивает |
Смотри, если по честному, я бы попробовал переписал так, чтобы не наследовать Платформ от МувиКлипа (хз, но по идее должно помочь...) А еще лучше - не создавать инстасы классов аттачем/выкладыванием на сцену... никогда не любил этот способ, вот нашел лишнее тому подтверждение.
|
| Часовой пояс GMT +4, время: 10:05. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.