Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Как удалить мувиклипы созданные с помощью duplicateMovieClip (http://www.flasher.ru/forum/showthread.php?t=33102)

PanCake 14.06.2002 15:25

Как удалить мувиклипы созданные с помощью duplicateMovieClip
 
Доброе время суток

Имеем
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) {...} - при небольшой и средней длине массивов это работает быстрее (немного, но все же), чем обычный фор :)


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

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