Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Удаление клипа из другого контейнера (http://www.flasher.ru/forum/showthread.php?t=149189)

Mulin 20.01.2011 15:47

Удаление клипа из другого контейнера
 
Циклом создаю мувиклип и кнопку на мувиклипе и помещаю их в два разных контейнера. Если поместить их в один контейнер, то не доступна становиться либо функция по клику на кнопку, либо функция по клику на мувкилип, а у меня повешена по функции и на кнопку и на мувиклип. Вобщем по клику на кнопку, должна удалиться как сама кнопка так и мувиклип с тем же ID. Но удаляется только кнопка.
Scrol_mc - общий контейнер
vidthumbs_mc - контейнер мувиклипа
vidthumbs_mc2 - контейнер кнопки
Mediablock - мувкилип (вызывается из библиотеки)
delite_btn - кнопка (вызывается из библиотеки)
вот код

Код AS3:

for (var i:Number = 0; i<vsego; i++)
{
        var delite_btn:MovieClip = Scrol_mc.vidthumbs_mc2.attachMovie("delite_btn", "Scrol_mc" +i, i);
        delite_btn.ID = i;
        delite_btn._x = 235;
        delite_btn._y = i*65+5;
        delite_btn.onRelease = function()
        {
                removeMovieClip(this);//удаляет кнопку
                _root.Scrol_mc.vidthumbs_mc.Mediablock[this.ID].unloadMovie();//но не удаляет мувиклип
        };
 
        var Mediablock:MovieClip = Scrol_mc.vidthumbs_mc.attachMovie("Mediablock", "Scrol_mc"+i, i);
        Mediablock.ID = i;
        Mediablock._y = i*65;
}

в чем может быть проблема?

Hauts 20.01.2011 15:54

Поменяйте местами строчки с removeMovieClip и unloadMovie

Mulin 20.01.2011 16:30

Hauts, не поможет, ибо если закоментить строчку с removeMovieClip, то все равно ничего не происходит. Дело не в том, что кнопка удаляется и функция прерывается, дело в том, что она впринципе не выполняется. Где то я накосячил, но не пойму где

Hauts 20.01.2011 20:50

Тогда отлавливайте ошибку, используйте трэйсы, например :)

Mulin 20.01.2011 21:02

да я блин два дня уже трейсю, все вытрейсить не могу, уже и не знаю где собака порылась :)

Hauts 20.01.2011 21:08

Попробуйте так:

Код AS1/AS2:

delite_btn.onRelease = function()
{
        trace(this + " ID=" + this.ID);
        trace(_root.Scrol_mc.vidthumbs_mc.Mediablock[this.ID])
        var toDelete = _root.Scrol_mc.vidthumbs_mc.Mediablock[this.ID]
        toDelete.swapDepths(toDelete._parent.getNextHighestDepth());
        toDelete.removeMovieClip();
        removeMovieClip(this);//удаляет кнопку
};

А вообще сложно ориентироваться не видя всего кода.

Tails 20.01.2011 21:14

Проверте в цикле трейсом:
Код AS1/AS2:

trace(_root.Scrol_mc.vidthumbs_mc.Mediablock[this.ID]);


Mulin 20.01.2011 21:30

Вложений: 1
Hauts, благодарю за помощь, и этот вариант не прошел, вот выложу исходник если не влом глянуть, буду весьма признателен

Mulin 20.01.2011 21:33

Tails, undefened походу что то с путями у меня. Но по логике это путь верный.
Scrol_mc.vidthumbs_mc. - реально существующий обьект. Mediablock - из библиотеки загружаю циклом в vidthumbs_mc

Tails 21.01.2011 09:02

Код AS1/AS2:

_root.Scrol_mc.vidthumbs_mc['Mediablock'+this.ID]

Так должно работать.


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

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