PDA

Просмотр полной версии : Как сделать паузу 10сек при проигрывании мувика?


prorokov
21.11.2001, 15:50
Как сделать паузу 10сек при проигрывании мувика?

petgraphh
21.11.2001, 16:22
Если без заморочек с программингом - вставляй кучу фрэймов. Т.е. fps у тебя 15, чтоб получить 10 сек задержку - встявь 150 кадров.

Baltika
21.11.2001, 16:27
юзай getTimer();

зы: раз сто уже обсуждалось, воспользуйся поиском

believe
21.11.2001, 17:54
2petgraphh
Такой подход надо искоренять, а не пропагандировать
Стыдно
Особенно если учесть, что скрипт элементарный

prorokov
21.11.2001, 18:00
Ну написал бы, раз элементарный.

John Connor
21.11.2001, 18:11
onClipEvent(load){
start=gettimer()
period=10000 //10 seconds *1000=10000ms
}
onClipEvent(enterFrame){
if(gettimer()-start>period){
_parent.action() //for example "play()"
removeMovieclip(this) \\sure you must attach this clip first...
}
}

petgraphh
21.11.2001, 18:40
2 believe
Не соглашусь с тобой. Ооочень много народа работает на флэше не ради программинга, а ради так сказать эстетического удовольствия -) А во флэше можно обойтись без скриптов (ну понятно, если задача не сложная в техническом плане). И это огромный его плюс. Что-то не много видел дизайнеров знающих Директор, а ему гораздо больше лет и больше возможностей в плане программирования.

vol
22.11.2001, 12:32
Можно ли обойтись без скриптов?
Даже тривиальный gotoAndPlay - это уже скрипт, простейший, но - скрипт. Не применять скрипты во флэше - все равно что перепечатывать в ворде текст каждый раз заново вместо того, чтобы его копировать и множить. Любители чисто эстетического, как мне кажется, просто зашли не на тот форум. Всерьез обсуждать вставку 150 пустых кадров как способ задержки - это? Нет слов.

netstuff
22.11.2001, 15:14
Интересно, а как ты без программинга делал бы десять разных задержек? А если каждая по минуте? Такие бы портянки проматывал...
Флеш без программинга - это не флеш, это PowerPoint какой-то...

vol
22.11.2001, 16:25
Вот пример.
Простой пример с задержкой исполнения произвольно выбранного кадра на произвольное (в разумных пределах возможностей Flash - 1-16с) время .
Любопытно было бы поглядеть на его реализацию "чисто эстетическими" средствами.
Тормозит, разумеется, все и напрочь, но не о том речь.

netstuff
22.11.2001, 17:08
А я не понял, зачем там такой цикл (вернее как он работает):
if (_currentFrame==_root.fn){
for (j=getTimer (); getTimer ()< _root.dt*1000+j; ) {
}

где statment (!?)

netstuff
22.11.2001, 17:12
2petgraphh:
Что-то не много видел дизайнеров знающих Директор, а ему гораздо больше лет и больше возможностей в плане программирования.

Интересно, а кто ещё кроме дизайнеров работает на Director'е? Так и говори, что ты мало видел людей, работающих на Директоре...

vol
22.11.2001, 17:24
2 netstuff
Это - пустой цикл, он ничего не делает за исключением проверки времени (внутри самого описания цикла) и после выполнения условия завершает свою работу. Таким образом, исполнение программы (и вообще всего свфа) прерывается на заданное этим циклом время. Этот прием часто использовался ранее в других языках, пока не было придумано обращение к таймеру. Например, для Паскаля делали
for i:=1 to 1000 do; - тоже пустой цикл.

John Connor
22.11.2001, 17:54
2volЖ ага а на время выполнения этого мувика весь мув стопится! =) зупа гут!

vol
22.11.2001, 18:03
Конечно, стопорится. Пример-то был не столько для практического применения (хотя, почему бы и нет - бывают, наверное, разные задачи), а для демонстрации того, что не все в этом мире пустыми кадрами решается. Или - не должно решаться. А ежели надо прервать на время, да чтобы мув остальной при этом работал - нужно искать другие пути. Например, искать тут же, на форуме. Свой-то пример (вернее, цикл задержки) я в свое время тут же и скачивал (не помню уважаемого автора идеи, но помню, что он из солнечного Магадана). У меня там какая-то билиберда в ttt была, но я ее не довел до победного конца из-за лени.
Кстати, пример демонстрирует еще одну вещь полезную: большинство из задаваемых нами вопросов давно уж обговорено, и иногда легче нажать кнопочку поиска, чем ждать новых (тех же самых по сути) ответов на старые вопросы. Это я наш форум нахваливаю!

John Connor
22.11.2001, 18:16
ну скриптом -то я ответил сразу... причем используюя его все нормально работает... =)

vol
22.11.2001, 18:23
2 ndglook И даже попытался к чему-то там присобачить. Но я хотел решить задачу шире - с любого места на любое время, и на скорую руку у меня в голову ничего и не зашло. А тут к тому же на AS наехали...ну, как не ввязаться в драку за святое?! Правда?

netstuff
22.11.2001, 18:41
2Vol

т.е. за счет того, что проц просчитывает пустой цикл, мы имеем задержку???

дык, задержка будет сильно зависеть от мощности оного...

John Connor
22.11.2001, 18:46
2vol!
ХА! так я и сделал универсально! =) мув такой мона приаттачить в любое место! =) ччерт вынудили пример написать... а я это дело не лайк... =) ждите пчть-десять минут

petgraphh
22.11.2001, 18:48
2 All
Так и знал, что визг поднимется... Я всего-лишь хотел сказать, что если аниматору понадобится вставить паузу - сомневаюсь что он будет программировать.

believe
22.11.2001, 18:57
Ну если людям хочется через... (одно место) сделать, не будем им мешать, ведь если очень хочется - значит можно :)

John Connor
22.11.2001, 19:01
да не должен аниматор работать один... и программер тоже...
все должно быть правильно и дезигн и программинг... хотите одни!? умейте и то и то.
вот вам пауза:

vol
22.11.2001, 19:01
2 netstuff
нет, для варианта с проверкой времени - не будет. Время - оно и есть время, 10с - и в Африке почти всегда 10с. В крайнэм случаэ - 12. Для пустых циклов for i:=1 to 10000 do; - конечно. Потому-то никто так сейчас и не делает.

2 ndglook
Пополни копилку знаний! Мне это пока что ни к чему, потому самому неохота додумывать чужую песнь, но с превеликим удовольствием посмотрел бы.
Даешь больше вариантов хороших и разных!

2 petgraphh
Да будет, если человек сим делом занимается, он обязательно придет к пониманию необходимости AS. Это ведь поначалу только кажется - освоил методы рисования и анимации - и будя.

vol
22.11.2001, 19:19
2 ndglook
Пока писал, - ты уже исходник выложил. Спасибо.
Меня в большей степени интересует задержка внутри твининга, т.е. мой вариант, но не глюкавый, не стопорящий "всех, кто ниже ростом". Если лень - не думай, сделаю и сам, если понадобится, если не лень - всем только польза будет.

John Connor
22.11.2001, 19:49
вот поуниверсальнее:

vol
23.11.2001, 11:08
2 ndglook
Да, это работает - что надо. Что сказать - мастерство не пропьешь!

prorokov
23.11.2001, 11:57
Спасибо ndglook.
Классное решение. Нечего сказать.
Такой же метод кто-то раньше выкладывал.
Я именно им и воспользовался.

Corpse
18.04.2002, 13:12
А я пользовался другим решением для паузы. Создал мувик из двух кадров - второй кадр возвращает в первый. А количество таких возвратов определяется параметром функции, которая проигрывает этот мувик при вызове. Тут и скрипт используется и таймлайн. Здесь только один минус - в каждый момент времени мув можно использовуть только для одной задержки. А вообще конечно уже давно мжно было бы придумать в AS что-нибудь типа Delay() или Sleep()...

lexass
18.04.2002, 13:29
F1 -> setInterval :cool:

УильямБрэдберри
18.04.2002, 13:45
http://www.flasher.ru/sources/stats_1628/

он универсальный..
для любого мувика и для рута

DUDE
23.02.2003, 17:15
Спасибо УильямБрэдберри!!!!
Браво!!