Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Почему нельзя обратится к объекту на сцене через this.parent из подкласса? (http://www.flasher.ru/forum/showthread.php?t=137294)

AlliAS 10.03.2010 02:54

Почему нельзя обратится к объекту на сцене через this.parent из подкласса?
 
Здравствуйте.

Почему я не могу обратится к символу на сцене допустим с идентификатором clip_mc, скажем из спрайта созданного в классе документа, через this.parent. При попытках мне возвращается ошибка: "Обращение к возможно не определенному свойству clip_mc в...". Из самого документ класса (this.clip_mc) можно обращаться сколько угодно. Почему так?

mayakwd 10.03.2010 04:31

потому что только класс знает что в нем лежит clip_mc, обращайтесь через this.parent.getChildByName("clip_mc");

вообще так делать не стоит.

AlliAS 10.03.2010 12:54

Спасибо за информацию.
Цитата:

Сообщение от mayakwd (Сообщение 892056)
вообще так делать не стоит.

А как стоит?

Котяра 10.03.2010 15:11

не должны дети знать своего родителя - нарушается принцип инкапсуляции и вообще ООП

random13 10.03.2010 15:21

с этим согласен, но с другой стороны не понятно а зачем ввели эти переменные?

zuxul 10.03.2010 15:30

При чем здесь инкапсуляции и ООП ? (если это было так, parent был бы закрытым членом DisplayObjectContainer)
По-моему, нарушается принцип событийной модели и всего лишь...

Котяра 10.03.2010 16:04

parent оставили открытым в угоду не-тру ООП программистам)
Я, например, практически нигде-никогда не использовал parent - не было необходимости..(из этого, правда, совсем не следует, что я тру ООП-программист)))
объект должен быть как чёрный ящик - ничего кроме себя не знать, а когда логика объекта завязана на его использование это не есть гуд.
типа: "если меня положат на диван - то я сплю, а если меня положили в гроб, то я умер)))"

а что за принцип событийной модели?

zuxul 10.03.2010 16:17

Что-то типа:
http://www.flasher.ru/forum/showthread.php?t=129557
Цитата:

Сообщение от mre
Родитель может использовать методы и свойства своих детей, а дети могут только испускать события, оповещая родителей о чем-либо.


Котяра 10.03.2010 16:30

Цитата:

Родитель может использовать методы и свойства своих детей, а дети могут только испускать события, оповещая родителей о чем-либо.
Это ультимативная форма требований(условий) для соблюдения инкапсуляции и абстракции объектов в частном случае для DisplayObject-ов.
Цитата:

Инкапсуляция - в объектно-ориентированном программировании - сокрытие внутренней структуры данных и реализации методов объекта от остальной программы. Другим объектам доступен только интерфейс объекта, через который осуществляется все взаимодействие с ним.
Цитата:

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

Psycho Tiger 10.03.2010 17:12

На самом деле если класс предоставляется только в 100% связке с другим классом и никаким другим, то parent использовать допустимо, хотя даже там лучше диспатчить событие.
Ещё момент - что события работают медленнее чем инлайновый вызов метода, так что в особо критичных местах можно и воткнуть parent, если критически нужна оптимизация.


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

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