![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Fla файл, класс документа com.flashgangsta.Main:
package com.flashgangsta { import flash.display.MovieClip; import flash.events.Event; public class Main extends MovieClip { public var menu:MovieClip; public function Main() { this.addEventListener( Event.ADDED_TO_STAGE, init ); } public function init( event:Event ):void { this.removeEventListener( Event.ADDED_TO_STAGE, init ); menu = new Menu(); this.addChild( menu ); } } } при попытке компиляции, флеш зависает и вылетает. В чем же беда?
__________________
Убейте меня! |
|
|||||
|
стервочка (я мужик)
|
а вы у себя рекурсии не видите в коде?
|
|
|||||
|
Честно говоря нет, но кажется начинаю понимать потихонечку. Тыкните пожалуйста пальцем, а-то я пока в AS3 нуб.
Учусь ![]() Нужели при наследовании вызывается конструктор суперкласса?
__________________
Убейте меня! Последний раз редактировалось джонатан; 27.09.2010 в 20:19. |
|
|||||
|
Регистрация: Jun 2010
Адрес: somewhere in the universe
Сообщений: 195
|
Ну и причем тут "а-то я пока в AS3 нуб" ?
Вот, что у вас происходит Вы создаете объект, который при добавлении на сцену создаст новый объект и добавит его на сцену, дальше новый объект создаст опять объект и опять его добавит на сцену и т/д |
|
|||||
|
Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
|
Конечно вызывается... Вам не наследование от документ класса нужно, а просто menu будет дочерним элементов в списке отображения. Не путайте теплое с мягким
![]() |
|
|||||
|
т.е. я правильно понял, что Main создает Menu, который опять вызывает конструктор Main и создает Menu, верно? А как же мне тогда быть? Я просто хочу из Menu вызывать методы Main... Но не хочу ограничиваться только статикой.
Hidest, т.е. из меню я смогу вызывать методы класса Main через parent?
__________________
Убейте меня! |
|
|||||
|
Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
|
Ну если хотите, вызывайте (если уверены, что у вас меню будет всегда находится в main, а не переместиться когда-нибудь в какой-нибудь контейнер)... или передавайте ссылку в конструктор, тогда вам будет все равно на все изменения иерархии в дисплей листе.
Последний раз редактировалось Hidest; 27.09.2010 в 21:17. |
|
|||||
|
по 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 isplayObjectContainer.а вот по передаче в конструктор все ок. Спасибо большое всем, сегодня я узнал много нового, а главное полезного! ![]()
__________________
Убейте меня! |
|
|||||
|
Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
|
Так в тесте ошибки все у вас сказано бежевым по серому: нет метода test у экземпляра класса.
(parent as Main).yourMethodInMainClass(); |
|
|||||
|
Возвращаюсь к теме. У меня возникла проблемка с вызовом метода родительского класса через ссылку.
public class Main extends MovieClip { public function Main() { sectionsContainer = new Sprite(); personagesRepository = new PersonagesRepository( this ); sectionsContainer.addChild( personagesRepository ); this.addChild(sectionsContainer); } public function showProfile():void { trace( "showProfile" ); } } public class PersonagesRepository extends MovieClip { public function PersonagesRepository( mainLink:Object ) { main = mainLink as Main; main.showProfile(); } } Подскажите пожалуйса как исправить? Кстати вот так: Ошибки нет!
__________________
Убейте меня! Последний раз редактировалось джонатан; 20.10.2010 в 17:55. |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:31. |
|
|
« Предыдущая тема | Следующая тема » |
|
|