Форум 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=153296)

shurco2 31.03.2011 14:14

Проверка на доступность элемента
 
Возник небольшой вопрос - как можно проверить существует ли добавленный элемент на сцене или нет?
Например, по нажатию на кнопку во флеше загружается какая либо картинка и соответственно создается экземпляр на сцене с баром загрузки ... после загрузки картинки - удаляется и экземпляр загрузочного бара
при многократном нажатии на кнопку загрузки может возникать ошибка, типа не может удалить этот лоадер (типа его нету, был уже удален)
можно ли проверить доступность какого либо элемента перед тем как начать делать что-то с ним???

Idon 31.03.2011 14:20

У класса DisplayObjectContainer и у всех его наследников есть метод
Код AS3:

contains(child:DisplayObject):Boolean

Возвращает
Boolean — Значение true, если объект child является потомком объекта DisplayObjectContainer или самого контейнера, в противном случае значение false.

Единственное, надо проверить, чтобы child не был null, иначе будет ошибка.

Код AS3:

if (pic)
        if (container.contains(pic))
                container.removeChild(pic)


bav 31.03.2011 14:21

Код AS3:

if (нужныйЭлемент) делаем-что-то-с-этим-элементом;
else такого-элемента-нет-(нулевая-ссылка);


shurco2 31.03.2011 14:23

спасибо за оперативность )

dimarik 31.03.2011 14:35

Idon, в этом примере проверка contains не сработает.
Код AS3:

parentContainer.addChild(childContainer.addChild(pic));
 
if (pic)
        if ( parentContainer.contains(pic) )
                parentContainer.removeChild(pic) // RTE


Idon 31.03.2011 14:51

dimarik, согласен, но если ты добавляешь объект в контейнер, а потом просто хочешь проверить, есть ли он там, то такой способ вполне подойдёт.

можно, конечно, и так
Код AS3:

                        if (pic) {
                                if ( parentContainer.contains(pic) && pic.parent) {
                                        pic.parent.removeChild(pic);
                                }
                        }



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

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