Форум 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)
-   -   Как сделать reset во флеше? (http://www.flasher.ru/forum/showthread.php?t=124974)

Angelinka 13.05.2009 19:13

Как сделать reset во флеше?
 
Здравствуйте!
Недавно столкнулась с проблемкой, буду очень признательна за помощь.
В общем, я делаю игру, в которой посредством attachMovie генерируется много обьектов. Когда я хочу перевести игрока на другой уровень - я посылаю его сначала на пустой фрейм. А когда попадаем на фрейм второго уровня - то все объекты из первого уровня остаются во втором.
Можно ли как-то очистить все переменные и удалить все объекты за раз, не загоняя их при этом в массив и не удаляя по очередности?
Заранее спасибки.

Kuruki 13.05.2009 19:19

Помещать все клипы в клип-контейнер и удалять его

mooncar 13.05.2009 20:01

Удалит все программно созданное на _root, можно так попробовать
Код AS1/AS2:

for (i in _root) {
    delete _root[i];
    removeMovieClip(i);
}

Только проверку надо ввести для аккуратности - то ли i - переменная, то ли мувиклип

Psycho Tiger 13.05.2009 20:11

После 2 строчки кода
Код AS1/AS2:

delete i;

переменной i не станет, и
Код AS1/AS2:

String(i)

всегда будет давать undefined

mooncar 13.05.2009 20:21

Да, согласен, нужно проверки ввести на тип дочернего объекта и на саму переменную i при удалении.
Но для "очистить все переменные и удалить все объекты за раз, не загоняя их при этом в массив" - смысл именно такой, _root - это уже массив, и туда заносить ничего уже не нужно, нужно только обход сделать через цикл и нужное удалить.

Добавлено через 9 минут
Что-то вроде
Код AS1/AS2:

for (i in _root) {
if (typeof(_root[i]) == "movieclip") {
  removeMovieClip(_root[i])
}
if (typeof(_root[i]) == "number") {
  delete _root[i]
}
if (typeof(_root[i]) == "string" && _root[i] != "i") {
  delete _root[i]
}
}

В общем, условия удаления по обстоятельствам определяются.


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

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