![]() |
После присвоения Stage класса Main не видно публичных методов Main
Хотел вообще знать как правильно обходиться со stage, покопавшись в нескольких исходниках понял что ей надо в свойствах присваивать класс, но после присвоения у меня в классе Main перестали видиться публичные методы, неужели такая манипуляция (в свойствах stage присваивать класс) делает этот класс статичным?
Если да, то как вызывать методы класса Main? делать их статичными и обращаться через класс? |
Покажите каким образом вы присвоили stage класс Main (через Document class?). И где теперь не видно публичных методов Main?
|
Вложений: 1
вот таким макаром в свойтвах stage прописываем класс
Вложение 28473 потом допустим Код AS3:
Код AS3:
|
Вот всё в точности до наоборот - будет работать :)
Главный класс на то и главный, что он должен всё решать и всем руководить. Что вам мешает сделать так: Код AS3:
Речь о том, что это одно и то же по факту Код AS3:
Код AS3:
Только это ОЧЕНЬ плохая практика, когда объект сам себя добавляет куда-то |
Код AS3:
Код AS3:
Код AS3:
Код AS3:
|
В первом приведенном вами примере вы обращаетесь к Майн до конца инициализации, а он в это время ещё равен null, то есть его фактически не существует. Инициализация объекта заканчивается тогда когда выполнится конструктор,и методы указанные в конструкторе ( а если в нем указана инициализация нижележащих объектов то и их конструкторы и методы указанные в них ). После этого можно обратиться уже к Майн, как к объекту.
По поводу второго примера strangedk вам уже подсказал, что обращаться из дочерних классов в родительские не корректно. Это создает проблемы при импорте в другие проекты и при отладке. Чаще всего это решается диспатчем события из дочернего объекта о том, что его сост. изменилось. Родительский объект получает это событие и решает что в связи с этим он должен делать как и чье состояние он должен изменить и т.д. |
а можете поправить мой код,чтобы было понятно, как нужно диспатчить клик Child-а, и как потом вызывать функцию Main класса?
|
Цитата:
Код AS3:
(ну не считая того, что так конечно не стоит делать) |
Цитата:
Хранить статический метод, который вытаскивает ссылку на Main класс? Стоит ли Stage присваивать класс Main? Как в таком случае оращаться к Main из детей(можно обращаться this.root as Main но не знаю правильно ли это)? Как я понял что когда Document class ставишь Main он становится статичным, и как тогда к нему обращаться из детей? |
Цитата:
|
Цитата:
нет в AS статичных классов, как нет никаких хитрых чудес при определении документ класса (по сути он всегда есть, только когда он явно не определен IDE\компилятор генерят его сами) Цитата:
вот смотри Код AS3:
|
Цитата:
|
Цитата:
Добавлено через 6 минут Цитата:
Код AS3:
а здесь в Main лишняя закрывающая скобка, вначале. Этот пример вообще должен выбрасывать ошибку. |
5 пост писал в качестве примера "на коленке", ошибся немного , извиняюсь, исправил, суть в том что document class = Main, он добавляет в себя obj1, а obj1 добавляет в себя obj2, а затем я из obj2 обращаюсь к Main через root и у меня не вызываются публичные методы Main, ошибка, как будто они приватные.
|
пример, использующий недоступные классы, нельзя запустить и увидеть в чем трабл
вот попытка реконструировать твою структуру, но она почему-то работает попробуй поломать, чтоб перестала, может тогда разберемся Код AS3:
Код AS3:
Код AS3:
Код AS3:
|
странно, у меня тоже работает. а когда документу присваиваешь класс нужно еще какие-то настройки выставлять во flash cs5 или просто тупо в свойтвах документа присваеваешь ему класс и все должно работать? а то заметил такую закономерность: качаю исходник чужой, сохраняю его в другую папку, копирую туда свой код - не работает, прям в исходник вставляю свой код - работает.
|
а вы пакет указываете в строке для документ-класса? Это обязательно иначе ИДЕ документ-класс не найдет и создаст свой.
|
ну да прописываю там classes.Main
|
| Часовой пояс GMT +4, время: 17:15. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.