![]() |
Флеш вылетает при попытке наследоваться от класса документа.
Fla файл, класс документа com.flashgangsta.Main:
Код AS3:
Код AS3:
|
а вы у себя рекурсии не видите в коде?
|
Честно говоря нет, но кажется начинаю понимать потихонечку. Тыкните пожалуйста пальцем, а-то я пока в AS3 нуб. :( Учусь :)
Нужели при наследовании вызывается конструктор суперкласса? |
Ну и причем тут "а-то я пока в AS3 нуб" ?
Вот, что у вас происходит Вы создаете объект, который при добавлении на сцену создаст новый объект и добавит его на сцену, дальше новый объект создаст опять объект и опять его добавит на сцену и т/д |
Конечно вызывается... Вам не наследование от документ класса нужно, а просто menu будет дочерним элементов в списке отображения. Не путайте теплое с мягким :)
|
т.е. я правильно понял, что Main создает Menu, который опять вызывает конструктор Main и создает Menu, верно? А как же мне тогда быть? Я просто хочу из Menu вызывать методы Main... Но не хочу ограничиваться только статикой.
Hidest, т.е. из меню я смогу вызывать методы класса Main через parent? |
Ну если хотите, вызывайте (если уверены, что у вас меню будет всегда находится в main, а не переместиться когда-нибудь в какой-нибудь контейнер)... или передавайте ссылку в конструктор, тогда вам будет все равно на все изменения иерархии в дисплей листе.
Код AS3:
|
по parent не вышло:
E:\!!WORK\!flashgangsta.com\src\..\com\flashgangsta\Menu.as, Line 15 1061: Call to a possibly undefined method test through a reference with static type flash.display:DisplayObjectContainer. а вот по передаче в конструктор все ок. Спасибо большое всем, сегодня я узнал много нового, а главное полезного! :) |
Так в тесте ошибки все у вас сказано бежевым по серому: нет метода test у экземпляра класса.
(parent as Main).yourMethodInMainClass(); |
Возвращаюсь к теме. У меня возникла проблемка с вызовом метода родительского класса через ссылку.
Код AS3:
Код AS3:
Подскажите пожалуйса как исправить? Кстати вот так: Код AS3:
|
Код AS3:
|
джонатан, покажи целиком код PersonagesRepository, похоже у тебя main, как статик объявлен. И подозреваю, что (mainLink as Main).showProfile(); должно прокатить.
Кстати, в конструктор принимай сразу mainLink:Main и не приводи классы. |
Bgg: та же ошибка.
Vier: Код AS3:
|
Что-то у вас все же не так... ибо вот так в чистом виде работает:
Код AS3:
в чем работаете, чем компилите? |
Adobe Flash Professional CS5
Сам не пойму, обычно в таких ситуациях ошибки небыло никогда. :( |
Покажи еще класс Main. В таком виде у меня тоже ошибки нет.
|
Код AS3:
Код AS3:
Добавлено через 4 минуты Код AS3:
|
Я конечно в АС3 новичек, но что вызвало у вас столько радости в последних двух цитатах кода, мне не понятно? Вы не слышали что такое строгое равенство? И что забавного во второй цитате?
Main это класс fla документа, который находится в том же пакете что и PersonagesRepository. Кстати: Код AS3:
|
Цитата:
|
Или шлите событие из своего меню, а уже в main его ловите и делайте, что нужно.
|
Да с меню тем я уже разобрался, это поднял тему уже по другому проекту, чтобы не создавать новую, т.к. похожая проблема.
|
В том то и дело - нафига строгое равенство к единице а ? Что ты этим хочешь добится ? В твоем случае разница ==1 от ===1 какая?* Для чего онное писать
Ну а по второй цитате - убить самого себя мне нравится, просто как звучит_)___))) |
in4core, не ругайте человека за то, что он пишет правильно. Здесь есть разница. При нестрогом неравенстве, насколько мне известно, происходит приведение к одному типу данных. В строгом - нет.
|
Да и в убийстве самого себя нет ничего плохого, по моему. Объект должен быть самостоятельным, разве что нужно не забыть обнулить его.
|
КорДум, +1.
Bgg, не забываю :) |
Уловил причину ошибки, она выскакивает при вызове методов главного класса документа.
|
| Часовой пояс GMT +4, время: 00:56. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.