Форум 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)
-   -   Остановить обработку скрипта (http://www.flasher.ru/forum/showthread.php?t=94277)

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

Цитата:

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

Цитата:

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

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

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

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

Lexandr 10.04.2007 16:02

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


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

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