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

sidorenkova 07.06.2013 13:56

Как проверить существование символа на ролике?
 
Здравствуйте!

AS3 создаёт на ролике элемент методом: addChild();

Но потом нужно удалить элемент removeChild, но у меня есть вопрос, если ли метод, как проверить. существует ли на данный момент Символ в ролике?

Чтобы вначале проверить. если ли он, а потом его удалить, если он существует.

Добавлено через 7 минут
Можно ли обычным... *.visible == "true" ???

Bletraut 07.06.2013 14:11

Это же очень просто

Код AS3:

var mm:Sprite = new Sprite();
if(mm)
{
trace("Существует");
}
else
{
trace("Не существует");
}


in4core 07.06.2013 14:14

Bletraut - WOT ?

contains

Final Hope 07.06.2013 14:18

Код AS3:

var mc:MovieClip = new MovieClip();
mc.name = "my_mc";
this.addChild( mc );
 
//Первый способ проверить:
trace( this.getChildByName( "my_mc" ) );
//Второй способ проверить:
trace( mc.parent == this );
//Третий способ проверить от in4core:
trace( this.contains( mc ) );


Bletraut 07.06.2013 14:32

Цитата:

Bletraut - WOT ?

contains
Тоже самое что и
Код AS3:

mm != null

Добавлено через 2 минуты
Цитата:

Код AS3:

//Первый способ проверить:
trace( this.getChildByName("my_mc") );
//Второй способ проверить:
trace( mc.parent == this );
//Третий способ проверить от in4core:
trace( this.contains( mc ) );


Извращения же просто, особенно первое и второе.

Final Hope 07.06.2013 14:37

Bletraut, вопрос был "как узнать, находится ли объект внутри другого объекта", а не узнать, существует ли объект в принципе.

Bletraut 07.06.2013 14:41

Код AS3:

var mm:Sprite = new Sprite();
var bb:Sprite = new Sprite();
bb.addChild(mm);
if(bb.mm)
{
trace("Существует");
}
else
{
trace("Не существует");
}

Тоже самое.

Final Hope 07.06.2013 14:44

Цитата:

Сообщение от Bletraut (Сообщение 1136868)
Тоже самое.

Цитата:

Scene 1, Layer 'Layer 1', Frame 1, Line 4 1119: Access of possibly undefined property mm through a reference with static type flash.display:Sprite.
Да ну?

Bletraut 07.06.2013 14:50

Цитата:

Цитата: Сообщение от Bletraut
Цитата:

Тоже самое.
Цитата:

Цитата: Scene 1, Layer 'Layer 1', Frame 1, Line 4 1119: Access of possibly undefined property mm through a reference with static type flash.display:Sprite.
Да ну?
Пардон, не нужно было
Код AS3:

if(bb.mm)
{

писать, а просто
Код AS3:

if(mm)
{

, это на тот случай было если mm уже в bb стоит в кадре.

Добавлено через 57 секунд
Код AS3:

var mm:Sprite = new Sprite();
var bb:Sprite = new Sprite();
bb.addChild(mm);
if(mm)
{
trace("Существует");
}
else
{
trace("Не существует");
}

вот так все заработает.

KumoKairo 07.06.2013 15:03

Совсем недавно посоветовали не использовать contains, а проверять родителя мувика через .parent
То есть если имеем:
Код AS3:

var spriteContainer:Sprite = new Sprite();
var vasya:Sprite = new Sprite();
spriteContainer.addChild(vasya);
if(vasya.parent == spriteContainer) //Истина
{
  trace("Содержит");
}
spriteContainer.removeChild(vasya);
if(vasya.parent == spriteContainer) //Уже ложь
{
  trace("Содержит");                  //не выведет
}

Спасибо товарищам КорДум и GBee за наводку :)


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

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