Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   визуальный объект getParent? (http://www.flasher.ru/forum/showthread.php?t=146329)

micromacro 04.11.2010 15:28

визуальный объект getParent?
 
Есть такая штуковина, надо как-то в собственной кнопке узнать к какому канвасу её подцепили.

Код AS3:

var can:Canvas=new Canvas();
 
can.addChild(new MyButton())
 
----------------
 
public class MyButton extends Button{
 
  public function getParent():Canvas{
 
    return обьект-родитель
  }
}

Нужно что-то типа getChildrens тока наоборот.

КорДум 04.11.2010 15:30

Сделайте сеттер или публичное свойство, куда помещайте ссылку на родителя.

TanaTiX 04.11.2010 15:32

Передать в параметр при ее инициализации ссылку на родителя.
Код AS3:

can.addChild(new MyButton(can));
//---------------------------
public function MyButton(parent:DisplayObject)....
//и тут локальной приватной переменной присвоить полученное в конструкторе значение

Но подход не правильный: дети не должны знать о своих родителях.

КорДум 04.11.2010 15:43

TanaTiX, а если ребенок захочет усыновиться другими?

nOobCrafter 04.11.2010 15:46

добаивть листенер аддет \ аддет_ту_стейдж и смотреть родителя. не?

TanaTiX 04.11.2010 15:57

Цитата:

Сообщение от КорДум (Сообщение 947599)
TanaTiX, а если ребенок захочет усыновиться другими?

это как?
к тому же я написал, что подход не правильный

Psycho Tiger 04.11.2010 16:01

Эээ... parent геттер?

КорДум 04.11.2010 16:05

TanaTiX, ну вот ребенок сменил родителя, а ссылка осталась на старого. Сеттером нужно будет переопределять. Подход неправильный, это да, тут можно посоветовать только пересмотреть архитектуру кода, вероятно она неправильная.

TanaTiX 04.11.2010 16:12

Цитата:

Сообщение от КорДум (Сообщение 947610)
ну вот ребенок сменил родителя

А можно примерчик?

КорДум 04.11.2010 16:14

Код AS3:

a.addChild(mc);
b.addChild(mc); // сменился родитель



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

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