Просмотр полной версии : Остановка вложенных клипов
Schwan_Stabilo
26.07.2002, 13:18
Приветствую. Есть вопрос. Предположим у меня на главной временной диаграмме есть клип, а в него вложено еще штук 7. Мне надо по нажатию кнопки на главной временной диаграмме остановить все что на ней находится, а потом начать с того же места. Для гланого клипа я это сделал. Но, если в каком-то месте я останавливаю главный клип, вложенный, находящийся в данном кадре, продолжает проигрыватьсяи это печально. Вопрос: можно ли останавливать все сразу, а потом запускать с того же места? Нет ли функции типа StopAll или чего-то подобного, которая бы стопила клип и все вложенные в него? Если нет, то как это в принципе можно реализовать. Клипы вкладывал руками, не програмно и они располагаются в основном клипе только в определенных областях.
P.S. Да, сразу скажу что использование loadMovie не подходит.
Ну когда вкладывал клипы руками, надо было давать им instance name (movik1, ... movik7, например). А потом обращаться к ним и стопить:
glavnii_movik.movik1.stop();
и т.д. для всех мувиков
О stopAll ничего не слышала.
продолжает проигрыватьсяи это печально
Видимо у тЯ одного такие проблемы ;)
Нет ли функции типа StopAll
если сам напишешь, то будет :)
myMC.stop()
Schwan_Stabilo
26.07.2002, 14:12
понял, в общем-то я догадывался :), но хотел уточнить. Эх, что-то придумывать, потому что то о чем вы говорите понятно и используется, но в данном случае...посмотрим. Спасибо за совет. :)
Nox Noctis
26.07.2002, 16:46
можно сделать так:
MovieClip.prototype.collapse = function() {
this.stop();
for (var i in this) {
if (typeof (this[i]) == "movieclip") {
this[i].collapse();
}
}
};
MovieClip.prototype.relaunch = function() {
this.play();
for (var i in this) {
if (typeof (this[i]) == "movieclip") {
this[i].relaunch();
}
}
};
чтобы остановить клип и все что в нем пишем:
любой_клип.collapse();
чтобы запустить клип и все клипы в нем снова - пишем:
любой_клип.relaunch();
Nox Noctis
26.07.2002, 16:51
а можно обойтись одной функцией с параметром:
MovieClip.prototype.togglePlay = function(action) {
this[action]();
for (var i in this) {
if (typeof (this[i]) == "movieclip") {
this[i][action]();
}
}
};
теперь те же действия делаем как
some_clip.togglePlay("stop");
или
some_clip.togglePlay("play");
Nox Noctis, ну зачем ты людям такие сложности выдаешЬ???
Nox Noctis
26.07.2002, 17:17
кхх... lexxass, я вообще-то на вопрос ответил, пока некоторые в соседнем топике черти-чем групповым занимаются :)))
зы: к тому же все что нужно чтобы воспользоваться этими "сложностями" - это скопировать скрипт и пользоваться :)
Schwan_Stabilo
26.07.2002, 17:53
Это то что нужно, спасибо огромное. Все понятно и достаточно просто.
:(
ИМХО
самому написать его интереснеЙ
а то дальше будут вопросы:
а куда это вставить?
ЗЫ
для использования чего-то человек должен созреть
Nox Noctis
26.07.2002, 17:57
Оригинал написал(а) lexass
а куда это вставить?тебя сегодня определенно на этом заело ;)
Оригинал написал(а) Nox Noctis
тебя сегодня определенно на этом заело ;)
да я зомбирован ;)
довели, поехал мозг промывать
Schwan_Stabilo
30.07.2002, 14:50
2Nox Noctis: Еще раз спасибо, я как раз закончил Колина Мука читать. Все красиво и понятно. Пришлось добавить кое-что в код, чтобы была проверка в каком фрэйме головка находится, на случай нескольких вложенных в один клип клипов.
MovieClip.prototype.togglePlay = function(action)
{
this[action]();
for (var i in this)
{
if (typeof (this[i]) == "movieclip" && this[i]._currentFrame != this[i]._totalFrames)
{
this[i][action]();
}
}
}
Вот так получилось. Все работает. Еще раз спасибо.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.