Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   removeChild внтури movieClip'а (http://www.flasher.ru/forum/showthread.php?t=124797)

freeek 08.05.2009 19:10

removeChild внтури movieClip'а
 
задача удалить textField внутри movieClip`а
Код AS3:

func("white", white);
 
function func(menu_text:String, myfunction:Function)
{
var menu_button:MovieClip = new button;
menu_button.x = 10;
menu_button.y = 10
addChild(menu_button);
 
var btn_text:TextField = new TextField();
btn_text.text = menu_text;
btn_text.selectable = false;
menu_button.addChild(btn_text);
 
menu_button.addEventListener(MouseEvent.CLICK, white);
}
 
function white(e:MouseEvent):void
{
removeChild((MovieClip)(e.target));
}

выдаёт ошибку TypeError: Error #1034: Type Coercion failed: cannot convert flash.text::TextField@23ed3f89 to flash.display.MovieClip. at drawing4_fla::MainTimeline/white()

etc 08.05.2009 19:41

Ну так target же btn_text, а не menu_button.

freeek 08.05.2009 19:49

можно подробней? event принадлежит menu_button почему тогда target btn_text? и я так и не понял как удалить menu_button и btn_text по нажатию

Gaen 08.05.2009 20:10

Подписавшись на события menu_button, вы будете получать его события и события всех его детей. Кликаете по полю - событие идёт от поля. Так как поле находится внутри menu_button, вы это событие ловите.

freeek 08.05.2009 20:15

понятно, а как удалить то? я в гугле нашёл только this.parent.removeChild(this); и у меня всё со сцены удаляется вообще

Gaen 08.05.2009 20:29

mc1.removeChild(mc2); - удаляет mc2 из mc1

dmitry bond 31.10.2011 08:18

А как удалить все объекты из мувика ?

КорДум 31.10.2011 08:30

Код AS3:

while (mc.numChildren) mc.removeClildrAt(0);


Deimos747 31.10.2011 11:44

Цитата:

Сообщение от КорДум (Сообщение 1042695)
Код AS3:

while (mc.numChildren) mc.removeClildrAt(0);


Лучше
Код AS3:

var num:int = mc.numChildren;
                        while (num--)
                        {
                                mc.removeChildAt(0);
                        }


etc 31.10.2011 11:51

Цитата:

Сообщение от Deimos747 (Сообщение 1042711)
Лучше
Код AS3:

var num:int = mc.numChildren;
                        while (num--)
                        {
                                mc.removeChildAt(0);
                        }


Как уже было давно выяснено, этот вариант медленней.


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

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