PDA

Просмотр полной версии : Как удалить мувиклипы созданные с помощью duplicateMovieClip


PanCake
14.06.2002, 15:25
Доброе время суток

Имеем
while (j>0){
duplicateMovieClip("_root.TransResp.TransTemp", "TransTempMC"+i, i);
setProperty("TransTempMC"+i, _y, y);
setProperty("TransTempMC"+i, _x, x);
j--;
i++;


}

надо потом все что насоздавали удалить
нахрен
конструкция типа
while (i>0){
"_root.TransResp.TransTempMC"+i+".removeMovieClip";
}

почему то не работает
подскажите как сделать правильно

Nox Noctis
14.06.2002, 15:30
_root.TransResp["TransTempMC"+i].removeMovieClip();

DeliMIter
14.06.2002, 21:48
_root.unloadMovie();

Nox Noctis
15.06.2002, 01:34
MovieClip.prototype.onLoad = MovieClip.prototype.removeMovieClip;
:D

УильямБрэдберри
15.06.2002, 01:53
ну, во-первых чуть переписать надо

while (j>0) {
duplicateMovieClip("_root.TransResp.TransTemp", "TransTempMC"+i, i);
setProperty("_root.TransResp.TransTempMC"+i, _y, y);
setProperty("_root.TransResp.TransTempMC"+i, _x, x);
j--;
i++;
}
а то не достучишься до клипов "TransTempMC"
-----------

во-вторых сделай так:

_root.duplicateArray = [];
while (j>0) {
duplicateMovieClip("_root.TransResp.TransTemp", "TransTempMC"+i, i);
setProperty("_root.TransResp.TransTempMC"+i, _y, y);
setProperty("_root.TransResp.TransTempMC"+i, _x, x);
duplicateArray.push(_root.TransResp["TransTempMC"+i]);
j--;
i++;
}
//=====================================
deleteAll = function()
{
for(var i=0;i<_root.duplicateArray.length;i++)
{
_root.duplicateArray[i].removeMovieClip();
}
delete _root.duplicateArray;
}
//=====================================

// это для кнопки
on (release) {
deleteAll();
}

Nox Noctis
15.06.2002, 02:23
2УильямБрэдберри
можно ведь массив и не городить на самом деле... все равно нужен будет цикл... достаточно запомнить последнее значение переменной 'i' при дублировании клипов...

while (j>0) {
duplicateMovieClip("_root.TransResp.TransTemp", "TransTempMC"+i, i);
setProperty("_root.TransResp.TransTempMC"+i, _y, y);
setProperty("_root.TransResp.TransTempMC"+i, _x, x);
j--;
i++;
}
delCount = i;
deleteAll = function()
{
for(var i=0;i<delCount;i++)
{
_root._root.TransResp.TransTempMC[i].removeMovieClip();
}
delete delCount;
}

все то же самое, зато лишнего массива нету :)


...а если уж делать массив, то лучше, наверное, сделать его как for (i in duplicateArray) {...} - при небольшой и средней длине массивов это работает быстрее (немного, но все же), чем обычный фор :)