PDA

Просмотр полной версии : Остановить обработку скрипта


Lexandr
09.04.2007, 11:38
Подскажите, как временно (до срабатывания какого-то события) приостановить обработку всех скриптов во всех слоях фрейма.

У меня ситуация. В самом верхнем слое в первом кадре висит код, который ждет пока из вне к нему не придет комманда. Для данного слоя можно просто обойтись if и все что не нужно выполнять взять в {}, а как быть с другими, нижними слоями??? Чтобы везде не втыкать это условие?


Так вот надо сделать так, чтобы весь код который ниже не выполнялся вообще пока эта комманда получена не будет. Как реализовать?

CorC
09.04.2007, 11:51
создать булеву переменную
если true то выполняь код...
остановить выполнение скриптов нельзя
можно лишь вызвать определенную функцию
через некоторый интервал времени

Lexandr
09.04.2007, 12:18
таким образом мне надо все слои перебрать и везде указывать "если true то выполняь код..." А надо уениверсально 1 раз в первом слое первого кадра. Может зациклить? или как-то еще

CorC
09.04.2007, 13:42
вот потому стоит хранить код не в сотне мест а стремится к 1 :)
for(in) не поможет?
а так да "надо все слои перебрать и везде указывать"

Lexandr
09.04.2007, 17:12
Дело в том, что мне передают много разных роликов разного формата, и вот еадо в каждый из них вставить свой код который позволит остальному ролику играться или нет

CorC
09.04.2007, 17:15
это типа последовательного воспроизведения?
ну дак в поиск вас, кстати наверно setTimeout поможет

Lexandr
09.04.2007, 18:16
setTimeout это опять не то. Он не остановит обработку скрипта который находится ниже него самого

iNils
09.04.2007, 19:36
Lexandr, такие вещи делаются не от балды. Сначала нужно продумать иерархию и схему выполнения скриптов, и потом уже писать все остальное, а не наоборт.

etc
09.04.2007, 20:23
Так, сначала делаем плохо, потом правим, чтобы выглядело неплохо. :)

Lexandr
10.04.2007, 11:26
Поясняю ситуацию. Мне передеют много готовых к компиляции мувиков, код не мой, его делают разные люди, разная иерархия и методы реализации. Так вот, в каждый этот мувик и нужно вставить код который либо разрешаент дальнейшее выполнение мувика либо отстанавливает.

CorC
10.04.2007, 11:29
подгружай их в разное нужное время
а до того просто превью ставь
а так дак бардак какой то :)

Lexandr
10.04.2007, 15:24
Видимо я не верно объясняю. :( Мне отдают fla исходники, в которые и нужно в первый кадр вставить код

iNils
10.04.2007, 15:50
Поясняю ситуацию. Мне передеют много готовых к компиляции мувиков, код не мой, его делают разные люди, разная иерархия и методы реализации. Так вот, в каждый этот мувик и нужно вставить код который либо разрешаент дальнейшее выполнение мувика либо отстанавливает.

Видимо я не верно объясняю. :( Мне отдают fla исходники, в которые и нужно в первый кадр вставить код
Как я уже говорил, надо продумывать все заранее и файлы должны соответствовать определенным требования. И кода который 100% остановит выполнения чужого мувика, не существует. Привожу пример на пальцах:

Допустим у вас есть 5 мувиклипов со вложенной анимацией. С помощью for ... in я могу пройтись по ним всем и остановить их. Но внутри мог использоваться setInterval, который через некоторое время после вашей остановки вызовет запуск какого-то клипа. Это в нрипципе тожа можно побороть, с помощью clearInterval, и цикла от 0 до N, но как вы потом обратно это запустите?
Далее, анимация с помощью Tween, таже самая проблема.

Поэтому чужой мувик должен содержать методы, которые позволяют контролировать запуск и остановку мувика.

Lexandr
10.04.2007, 16:02
ок, спасибо всё понял. Универсальеого метода не существует