PDA

Просмотр полной версии : Не могу удалить клип со сцены.


dmitry_kiv
06.05.2009, 17:20
На сайте есть xml фотогалерея.

Вот участок кода который выводит фотки на сцену:

function byggBilder() {
for (i=0;i < photoHolder.length;i++) {
mc = _root.attachMovie("fotoHolder","fotoHolder"+i,_root.getNextHighestDepth());
}


все работает замечательно, но при переходе на другие пункты меню фотки не исчезают.
я на событие onRelease на другом пункте меню обращаюсь к появившимся изображениям:


but1.onRelease = function() {
_root.fotoHolder0._visible=false;
_root.fotoHolder1._visible=false;
_root.fotoHolder2._visible=false;
_root.fotoHolder3._visible=false;
_root.fotoHolder4._visible=false;
_root.fotoHolder5._visible=false;
_root.fotoHolder6._visible=false;
_root.fotoHolder7._visible=false;
_root.fotoHolder8._visible=false;
_root.fotoHolder9._visible=false;
}


фотки исчезают, но их надо удалить.
removeMovieClip(_root.fotoHolder0); не работает.

подскажите в чем может быть проблема?
спасибо.

iNils
06.05.2009, 17:25
Во-первых
_root.fotoHolder0.removeMovieClip();
а
removeMovieClip(_root.fotoHolder0);старье
Во-вторых, так бывает, когда глубина клипов ниже нуля, либо выше придельной высоты (в зависимости от версии плеера она разная). Поэтому клипы перед удалением надо опустить пониже, например на глубину 1000000

nOobCrafter
06.05.2009, 17:27
_root.fotoHolder0.removeMovieClip();
??
З.Ы. опередили((

dmitry_kiv
06.05.2009, 17:38
_root.fotoHolder0.removeMovieClip(); не помогло..

как всем этим клипам указать нужную глубину(например те же 1000000)?

iNils
06.05.2009, 17:49
не помогло..Не так, глубину не сменили.
for (var i:Number = 0; i < 10; i++) {
var mc:MovieClip = _root["fotoHolder0"].swapDepths (1000000);
mc.removeMovieClip ();
}

dmitry_kiv
06.05.2009, 18:07
сейчас код на кнопке имеет вид:

but1.onRelease = function() {
for (var i:Number = 0; i < 10; i++) {
var mc:MovieClip = _root["fotoHolder0"].swapDepths (1000000);
mc.removeMovieClip();
}
_root.fotoHolder1._visible=false;
_root.fotoHolder2._visible=false;
_root.fotoHolder3._visible=false;
_root.fotoHolder4._visible=false;
_root.fotoHolder5._visible=false;
_root.fotoHolder6._visible=false;
_root.fotoHolder7._visible=false;
_root.fotoHolder8._visible=false;
_root.fotoHolder9._visible=false;
}


результат можно посмотреть здесь: http://che-media.ru/dima/index1.swf
сначала зайти в раздел "галерея", потом нажать на "главную". в итоге на экране остается только фотка fotoHolder0.

iNils
06.05.2009, 18:14
Не надо тупо код копировать. Я в коде ошибся, а вы не глядя вставили. Надо разбираться что и зачем.
but1.onRelease = function() {
for (var i:Number = 0; i < 10; i++) {
var mc:MovieClip = _root["fotoHolder" + i].swapDepths (1000000);
mc.removeMovieClip();
}
}

dmitry_kiv
06.05.2009, 18:22
я заметил что там просто имя стоит без i, но решил оставить так, чтобы хотябы первый клип убирался. я заменил код на Ваш последний. клипы по прежнему остаются на сцене. http://che-media.ru/dima/index1.swf

iNils
06.05.2009, 18:46
Ну вот опять, я еще одну ошибку допустил, а вы опять прохлопали :)
but1.onRelease = function() {
for (var i:Number = 0; i < 10; i++) {
var mc:MovieClip = _root["fotoHolder" + i];
mc.swapDepths (1000000);
mc.removeMovieClip();
}
}

dmitry_kiv
06.05.2009, 18:52
iNils спасибо. для меня этот вопрос оказался очень интересен) первый диск этого исполнителя посвятим вам :)