Форум 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)
-   -   removeMovieClip (http://www.flasher.ru/forum/showthread.php?t=133959)

rockerror 17.12.2009 17:32

removeMovieClip
 
Доброго дня, Дамы и Господа флэшеры!
Вопрос следующий:

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

Код AS1/AS2:

this.link01.but01.onRelease = function() {
        _root.attachMovie("link01_cont","link01_cont",this.getNextHighestDepth(),{_x:91.5, _y:0});
};
this.link01_cont.close01.onRelease = function() {
        _root.link01_cont.removeMovieClip();
};

Казалось бы все просто, но сам пока не могу понять в чем косячек((( :wacko:

lexa2000lexa 17.12.2009 18:04

если кнопка находиться в приатаченном клипе попробуйте вот так
Код AS1/AS2:

this.link01_cont.close01.onRelease = function() {
this._parent.removeMovieClip();
};


rockerror 17.12.2009 18:16

Не-а)) не пашет... Я вот думаю... а правильно-ли, что я когда аттачу, вот тут:
Код AS1/AS2:

_root.attachMovie("link01_cont","link01_cont",this.getNextHighestDepth(),{_x:91.5, _y:0});

одно и то же имя мувику пишу?...

mooncar 17.12.2009 18:28

Вот вы назначаете в коде обработчик:
Код AS1/AS2:

this.link01_cont.close01.onRelease = function() {
        _root.link01_cont.removeMovieClip();
};

До нажатия кнопки сцене еще отсутствует link01_cont.close01, так что эта строка тут только как балласт идет.
Запишите назначение обработчика на закрытие внутри первого обработчика:
Код AS1/AS2:

this.link01.but01.onRelease = function() {
        var item:MovieClip = _root.attachMovie('link01_cont', 'link01_cont', this.getNextHighestDepth(), {_x:91.5, _y:0});
        item.close01.onRelease = closeCont;
};
 
function closeCont () {
        this._parent.removeMovieClip();
}


rockerror 17.12.2009 18:37

Глубокоуважаемый mooncar... Впервые предложенный Вами код не заработал)))

Добавлено через 6 минут
Так, но идею уловил... Попробовал вот так:

Код AS1/AS2:

this.link01.but01.onRelease = function() {
        _root.attachMovie("link01_cont","link01_cont",this.getNextHighestDepth(),{_x:91.5, _y:0});
        _root.link01_cont.close01.onRelease = function() {
                _root.link01_cont.removeMovieClip();
        };
};

Однако, фигушки...(((

mooncar 17.12.2009 18:45

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

Попробуйте так:
Код AS1/AS2:

this.link01.but01.onRelease = function() {
        _root.attachMovie('link01_cont', 'link01_cont', this.getNextHighestDepth(), {_x:91.5, _y:0});
        _root.link01_cont.close01.onRelease = closeCont;
};
 
function closeCont () {
        root.link01_cont.removeMovieClip();
}

Добавлено через 3 минуты
Кстати, еще ошибка - аттачите вы на _root, но пишите почему-то при аттаче this.getNextHighestDepth(). Изнутри this.link01.but01 this будет указывать на link01.but01, а вовсе не на _root.

rockerror 17.12.2009 18:52

Да... я с путями совсем запутался... Если выложу исходничеГ - глянете?)))

mooncar 17.12.2009 18:54

Вложений: 1
Посмотрите пример. Попробуйте разобраться у себя в адресации. Если не получится - выложите исходник, попробуем глянуть.

rockerror 17.12.2009 19:10

Блин)) В примере все работает)) Копирую к себе, проставляю адреса, казалось бы, как нужно и работать все перестает... ща выложу исходник... Гляньте, если не затруднит...

Добавлено через 7 минут
Стоп!))) Нашел косяк!!!)))))

Добавлено через 8 минут
все оказалось архи просто)) Код-то был рабочий)) Дело в том, что я в мувике, где была кнопка не прописал имя кнопки))

mooncar 17.12.2009 19:26

Ага, бывает. Только this.getNextHighestDepth() все-таки исправьте на _root.getNextHighestDepth()


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

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