Показать сообщение отдельно
Старый 20.09.2015, 14:55
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
В другом классе нет ссылки на _floatingCont, соответственно и удалять нечего.
И вообще метод contains вернет true, даже если фактически объект не содержится в самом контейнере, а содержится в каком-то из его дочерних. У contains есть второй параметрб который как раз отключает рекурсивную проверку.
Но вообще лучше не использовать contains, а использовать
Код AS3:
if (_floatingCont.parent) _floatingCont.parent.removeChild(_floatingCont);
То есть проверять наличие родителя.

И еще одно. Не надо путать stage и документ класс.
Вначале в Main написано addChild(_floatingCont);
Это совсем не означает, что объект добавился на stage.
Код AS3:
addChild(_floatingCont);
равнозначно записи
Код AS3:
this.addChild(_floatingCont);
а не
Код AS3:
stage.addChild(_floatingCont);
Значит _floatingCont добавляется в объект Main, а не на сцену. То же самое касается и всех других контейнеров. На сцену объект попадет только при явном указании на это, как в
Код AS3:
stage.addChild(_floatingCont);
п.с. Советую почитать что такое инкапсуляция и зачем она нужна