Просмотр полной версии : Организация паузы
Alexander Kovtunov
04.10.2002, 17:00
При создании презентации необходимы паузы.
При организации паузы через цикл с getTime в общем-то получается
Но при этом в течении паузы невозможно совершить какие-либо другие действия.
Как сделать выход из цикла?
ты наверное цикл с паузой поместил на основной тэмплэйт? если вынести отдельным мувиком не должно тормозить
лучше всего юзать setInterval (); // в МХ
тоесть, стопиш мувик, в интервале указываеш время через которое нужно запустить дальнейшие действия
Ваша проблема в непонимании сути/философии флэш.
ActionScript не выполняется параллельно фильму в отдельном потоке, а идет в кадрах, и пока выполняется код (а он выполняется до вывода изображения текущего кадра) Флэш "виснет" намертво. Попробуйте увеличить Ваш цикл и вы увидите, что флэш начал ругаться: "ActionScript слишком долго исполняет свой код. Обломить его?"
Предложение:
1. Делайте пустые кадры (Insert frame). Т.е. не изменяйте содержимое слоя на протяжении 100-300 кадров. Если у Вас много слоев, то ничего страшного, продлите их всех. Размер фильма увеличится только на кол-во "стоячих" кадров * 2 байта. Большое кол-во слоев не прибавляет размера.
2. Делайте "stop()" и продолжайте командой "play()" спустя некоторое время. Для этого потребуется создать пустой мувик с кодом:
onClipEvent(load){
wait=100
}
onClipEvent(enterFrame){
if (!wait--){
_parent.play()
}
}
2-й вариант стоит использовать при особо больших задержках (более 200 кадров)
Alexander Kovtunov
08.10.2002, 21:54
Alyosha,
Второй вариант поприятнее ибо предполагает более гибкие изменения паузы.
А как быть ежели нужно совместить самостоятельное "кручение" флэш-презентации и интерактивность?
Т.е. можно "прокручивать" нажимая мышой на кнопки, но если возникает пауза, то шоб ролик начинал сам "крутиться"
Как отловить ЛЮБЫЕ действия мышой для прерывания паузы?
Проверять в цикле координаты?
Как я понял, презентация представляет собой фильм из n-ного количества подряд идущих кадров?
В таком случае намного проще будет поместить всю презентацию в отдельный клип и управлять его поведением извне.
Первая кнопка: myClip.stop();
Вторая кнопка: myClip.play();
Где myClip - это клип с мувиком.
Реализация возможности "проигрывания назад" будет не намного сложнее.
В этом случае нужно повешать всю процедуру проигрывания клипа на интервалы:
//Второй вариант
_root.vStep = 1; // управляющая переменная. ( Если "-1" - играем назад, если "0" - пауза, если "1" - играем вперед. )
function myClipControl(){
_root.myClip.gotoAndStop( _currentframe+_root.vStep );
}
setInterval( myClipControl, 40 ); // 25 кадров в секунду.
В этом случае для управления клипом нужно будет изменять переменную _root.vStep.
Первая кнопка: _root.vStep = -1; // назад
Вторая кнопка: _root.vStep = 0; // пауза
Третья кнопка: _root.vStep = 1; // вперед
Клип будет сам крутиться как ему скажешь, не забудь поставить контроль за кадрами.
Вся остальная интерактивность будет жить собственной жизнью.
во-о-о-т......
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.