Просмотр полной версии : как прописать программно последовательность проигрывания мувиков?
Например, после того как сыграет mov1, запустить mov2 и т.д.
Последовательность случайна и должна программироваться, очевидно.
Я пробовал запоминать имя мувика и в конце каждого клипа пихать комманду на его выполнение, но дело в том что у них могут быть разные родители. А выполнить eval('_parent._parent['+mov_name+']').gotoAndPlay(scene) нельзя. У меня по кр мере не получилось..
при запуске в первом кадре напиши:
_global.arrayMC=new Array()
в каждом клипе который может запускаться в первом кадре напиши:
if (!this.flag){
_global.arrayMC[_global.arrayMC.length]=this
this.flag=true;
}
Теперь у тебя есть массив со списком (включая путь) до каждого клипа.
В конце клипа надо использовать код:
stop();
_global.arrayMC[Math.floor(Math.random()*(_global.arrayMC.length-1))].play()
Писал в слепую, поэтому может в синтаксисе быть какая-нибудь ошибка, но это ты уже сам проверь
ух! всё понял, круто, спасибо =)
Можно не прописывать ничего в кадрах клипов, а вписать в первый кадр главной сцены это... Но тут есть и свои недостатки, которые ты, конечно же, сам найдешь 80)
// наши клипы
clips = ["mc1","mc2"...]
// тормозим все клипы сначала
for (var i in clips) {
this[clips[i].stop]
}
// и проигрываем первый
id = 0; clips[id].play()
len = clips.length;
loop = setInterval(nextPlay, 1/21)
// постоянно проверяем
function nextPlay() {
// как только очередной проигрался полностью играем следующий
if (this[clips[id]]._currentframe == this[clips[id]._totalframes) {
this[clips[id]].stop(); // или
this[clips[id]].unloadMovie(); // или
// закончили играть все клипы
if (id == len) clearInterval(loop)
else this[clips[++id]].play(); // следующий...
}}
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.