Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Обращение к родителю (http://www.flasher.ru/forum/showthread.php?t=124130)

xpymbl4 21.04.2009 18:19

Обращение к родителю
 
Здравствуйте. Если сочтете вопрос глупым - удалите тему )
Есть два класса: один главный класс документа fla (MainClass), другой класс записан в Linkage одного из мувиклипов в библиотеке (ElseClass). Из ElseClass не получается обратиться к родительскому методу в MainClass.
Вот классы:

Код AS3:

package main{
        import flash.display.*;
 
        dynamic public class MainClass extends MovieClip {               
                public var theElseClass:ElseClass = new ElseClass();
 
                public function MainClass() {
                        addChild(theElseClass);
                        theElseClass.myConstructor();                       
                }
                public function tempF() {                       
                        trace("trace it please");
                }
        }
}

Код AS3:

package main{
        import flash.display.*;
 
        dynamic public class ElseClass extends MovieClip {       
 
                public function ElseClass() {                               
                }       
                public function myConstructor() {
                        trace(parent); // Выводит [object MainClass]
 
                        //Ошибка 1061 при обращении к родителю в следующей строчке:
                        //parent.tempF();
                }
        }
}

скажите что не так делаю пожалуйста..

tikhop 21.04.2009 18:42

может надо попробовать
Код AS3:

(parent as MainClass). tempF();


xpymbl4 21.04.2009 18:44

спасибо огромное. помогло ))

etc 21.04.2009 22:32

Не надо обращаться к parent.

Psycho Tiger 21.04.2009 23:02

Кстати, всегда хотелось знать почему.
Я прекрасно понимаю, что перенос скриптов сильно страдает, но если это что то взаимодействующее, которое не может существовать друг без друга и всегда идет в связке - почему бы "дочке" не обратиться к родителю?

Ну в этом случае да, солидарен с __etc. А в других?

tikhop 21.04.2009 23:09

"но если это что то взаимодействующее, которое не может существовать друг без друга"

То наверно лучше посылать события родителю...

IDimitry 22.04.2009 00:23

А действительно, почему не надо обращаться к родителю?
Просто передавать свой экземпляр наследнику для обращений? Или вовсе максимально ограничить взаимодействие?

BlooDHounD 22.04.2009 00:41

у нас же ООП? каждый класс - это чёрный ящик. он должен работать независимо от родителя.

etc 22.04.2009 07:57

Цитата:

Сообщение от Psycho Tiger (Сообщение 814521)
А в других?

А в каких? Зачем дочернему экземпляру знать, кто, как и с какой целью его создал? Задача дочернего экземпляра — отобразить то, что просят. Все необходимые данные нужно передать ему заранее. Для отправки событий есть тот же бабблинг, кому надо — тот обработает.

Smrad 22.04.2009 11:10

Смысл в уменьшении связности. Вертикальные связи не допускаются, горизонтальные - минимизируются.


Часовой пояс GMT +4, время: 23:39.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.