PDA

Просмотр полной версии : почему не убивается клип?


Denisator
18.09.2002, 13:28
Не понимаю хоть убейте!!!
Множу клип:

duplicateMovieClip (_root.dead_body, "_root.dead_body"+name, random(1000)+50000);

в клипе _root.dead_body прописано:

onClipEvent (enterFrame) {
if (_root.gameover==1) {
removeMovieClip (this);
}
}

все другие клипы с подобной системой создания/удаления ликвидируются при _root.gameover=1, а "_root.dead_body"+name не желает исчезать. Почему?

Nox Noctis
18.09.2002, 14:25
так что тебя удивляет-то ?
removeMovieClip работает только с клипами созданными динамически...
а исходный dead_body, как я понял, у тебя просто лежит в таймлайне...

используй аттач, или скрой исходный дублируемый клип

greyshaman
18.09.2002, 14:32
a.swapDepths(1);
a.removeMovieClip();

Nox Noctis
18.09.2002, 14:46
читерство :)
ремувМувиКлип не работает с отрицательными глубинами...
про всякие такие фишки в теме про глубины писали :) где-то была тут такая :)

Denisator
18.09.2002, 19:07
removeMovieClip работает только с клипами созданными динамически...
а исходный dead_body, как я понял, у тебя просто лежит в таймлайне... ты не внимательно прочитал, у меня написано: "_root.dead_body"+name не желает исчезать, тоесть я пытаюсь удалить динамически созданый клип.


ремувМувиКлип не работает с отрицательными глубинами...
про всякие такие фишки в теме про глубины писали где-то была тут такая это ты мне или greyshaman'у?

Nox Noctis
18.09.2002, 19:18
1. ты шутник :)))
я сначала не обратил внимания...
duplicateMovieClip (_root.dead_body, "_root.dead_body"+name , random(1000)+50000);
...в результате этой операции ты получишь клип:
_level0._root.dead_body###
то есть "_root.dead_body###" - это имя такое :)

вывод: надо либо правильно пользоваться дубликейтом, либо писать
this.removeMovieClip(), потому что этой функции абсолютно все равно что там за имя у мувика,
а вот функция removeMovieClip(...) это не метод: она ищет указанный клип по строке, которую ты передал в качестве параметра

2. а шаман кстати, тоже невнимательно читал :P

Denisator
18.09.2002, 19:48
Заменил removeMovieClip(this) на this.removeMovieClip() и всё равно не работает! :-(
И что удивительно, ведь в других клипах у меня эта конструкция отлично работает.

Nox Noctis
18.09.2002, 23:52
"_root." из имени дублированного клипа убрать пробовал ?
оно там совершенно незачем...

я пробовал - this.removeMovieClip() у меня работает
даже с таким извращенным именем клипа...

давай исходник вобщем :)

Denisator
19.09.2002, 00:44
Блин! В моём исходнике чёрт ногу сломит. :D
Вообщем смотреть надо в клипах dvornik и dead_body.
Заранее благодарю.

Denisator
19.09.2002, 00:47
ах да! вот исходник!! :)

sergwizard
19.09.2002, 06:50
Да уж, в твоем исходнике точно можно ногу сломать. И мувик ведет себя странно.
То дворник топчется на месте, то игра заканчивается только после 4-го тела, хотя столов не прибавляется. После начала новой игры, ничего не выпадает из окна.
Не знаю почему, но вот такое:
removeMovieClip(_root.dead_body[name]);
- убивает твой клип.
Мне кажется, что ты слишком много того, что можно было вписать во фрейм action, вписывал в клип action. Да к тому же много противоречащих друг другу кодов. Например в "мониторе" ты пишешь:
onClipEvent (load) {
..........
_root.dvornik._visible = false;
........
А в самом "дворнике" -:
onClipEvent (load) {
this._visible = true;

Не очень понимаю, для чего это код в "ambulance"
onClipEvent (load) {
this.swapDepths(10000);
}
onClipEvent (enterFrame) {
if (_root.gameover==1) {
removeMovieClip (this);
}
}
Стоит она себе в таймлайне и никому не мешает, ну и пусть стоит. Сама исчезнет, когда мувик перейдет на 3-й фрейм.
И т.д.
Вообще код надо бы почистить, тогда легче в нем разобраться.
Удачи.

Denisator
19.09.2002, 17:59
То дворник топчется на месте,

исправление этого бага уже на очереди

то игра заканчивается только после 4-го тела, хотя столов не прибавляется.

так задумано

После начала новой игры, ничего не выпадает из окна.

тоже на очереди

Не знаю почему, но вот такое:
removeMovieClip(_root.dead_body[name]);
- убивает твой клип.
действительно работает. УРА!

Мне кажется, что ты слишком много того, что можно было вписать во фрейм action, вписывал в клип action. Да к тому же много противоречащих друг другу кодов. Например в "мониторе" ты пишешь:
onClipEvent (load) {
..........
_root.dvornik._visible = false;
........
А в самом "дворнике" -:
onClipEvent (load) {
this._visible = true;

первый код скрывает клип dvornik, а второй код делает дубликат дворника видимым

Вообще код надо бы почистить, тогда легче в нем разобраться.
Удачи.

сейчас займусь.
И вообще, подскажите что лучше пихать в таймлайн клипа, а что в onClipEvent?