Просмотр полной версии : Обратная прокрутка ролика
Доброго времени суток всем участникам конференции.
Вопрос вот какой: есть команда GotoAndPlay(номер фрейма).
А нет ли какой-нито команды или способа, чтобы проиграть ролик до заданного номер фрейма В ОБРАТНОМ ПОРЯДКЕ?
Спасибо.
И еще близкий вопрос: можно ли как-то задать границы проигрывания ролика (от какого фрейма до какого), кроме как прописав в конечном фрейме Stop() а в начальном - GotoAndPlay(x) ?
чтоб проверять - есть оператор if и свойство _currentframe, их и юзай!
Эта команда осуществляет переход на 1 кард обратно, а если надо прокрутить последовательно 20 кадров ролика???
Вероятно где-то надо написать функцию, которая 20 раз будет запускать эту команду, но где и как?
Или можно как-то проще?
А вот _currentframe - точно то что надо
спасиб!
вероятно надо :p
тут тебе надо немного теории знать - для такого управления как хочешь ты обычно используют либо 3-х кадровые мувики(это было актуально для 5-ки и ниже), либо функции с onEnterFrame; и то и другое управляет процессом в заданном таймлайне!
например можешь так:
function backward(mc, endf) {
onEnterFrame=function() {
if (mc._currentframe == endf) {
return;
}
mc.prevFrame();
}
}
обращаешься как _root.backward(this, 1); - это ты уже знаешь
вот это точно поможет!
... после обеда :)
поможет, кудаж оно денется :) :) :)
Nox Noctis
21.08.2002, 14:38
а для МХ есть тут одна фишка
http://www.flasher.ru/src/stats_1809/
проигрывание мувика в заданном направлении с заданным фреймрейтом... может пригодится...
DeliMIter
22.08.2002, 13:22
Оригинал написал(а) strelka
... не знает границ...
...растеклась по полу безгранично грязной лужей...
Сори, просто не удержался. Nox, твой адвансед плэйхед контрол - глючный :))))))))
Nox Noctis
22.08.2002, 13:35
багрепорт давай а не пальцами маши :))
DeliMIter
22.08.2002, 22:55
2Nox
Теперь я могу ЭТО сделать :)))))))))))
http://www.station4net.com/flashfx/image/kill.gif
Слал уже как-то. Ставишь 120 фпс и эксперементируешь с параметром. То ли на 12 то ли на 120 работало стабильно криво.
Nox Noctis
23.08.2002, 14:33
2DeliMIter фуф... а я уж думал ты что-то серьезное нашел...
...комменты надо читать лучше :)
там написано, что фреймрейт может быть любым "в разумных пределах"... поставь в небольшом ролике фпс 120 - и посмотрим как все будет здорово %)) а еще в макромедию напишем что у них плеер корявый (давно хотелось 8)) )
чем меньше фреймрейт, тем правильнее все работает... до 50 кадров в сек я глюков пока не замечал...
а очень большие фреймрейты - нафига они вообще ? может не надо приспосабливать плюшевого зайца к управлению боингом, а ? :)))
к тому же setInterval работает неравномерно, что тоже дает некоторую погрешность (там время интервала отсчитывается от окночания выполнения функции а не от момента предыдущего запуска... а время выполнения может варьироваться как угодно практически)
...хм... кому я это все объясняю ? ;))))
DeliMIter
23.08.2002, 20:58
[quote]
...хм... кому я это все объясняю ? ;))))
[quote]
Стрелке ;))))))
Насколько я знаю, setInterval работает корявовато, потому что вынужден ждать ближайшего кадра ПОСЛЕ того, как заданное время реально вышло. Так что если в первом кадре поставить инервал на одну секунду, то при 1 фпс триггер сработает кадре так в третьем...
Nox Noctis
23.08.2002, 21:08
ну, это-то как раз понятно :) даже в хэлпе написано (даже :)) )
If interval is greater than the movie frame rate, the interval function is only called each time the playhead enters a frame in order to minimize the impact each time the screen is refreshed.
тоже корявость...
что делать, всем управляет фреймрейт, никуда от этого не деться :)
после того как прочилал тему решил сам попробывать... только через фреймы...
данный пример сделал исключительно ради интереса...
Scene 1
actions for frame 1
fscommand("showmenu", 0);
fscommand("allowscale", 1);
stop();
actions for main
onClipEvent (load) {
stop();
}
actions for button
on (rollOver) {
if (main._currentframe>2) {
main.gotoAndPlay(2);
} else {
main.gotoAndPlay(1);
}
}
on (rollOut) {
main.gotoAndPlay(4);
}
Symbol Definition(s)
main
actions for frame 1
i=0;
MC=ball;
n=Math.round (ball._totalframes);
actions for frame 2
if (i>=0 && i<n) {
i++;
} else if (i=n) {
stop ();
}
MC.gotoAndStop(i);
actions for frame 3
gotoAndPlay (_currentframe-1);
actions for frame 4
if (i>1) {
i--;
} else if (i==0){
stop();
}
MC.gotoAndStop(i);
actions for frame 5
gotoAndPlay (_currentframe-1);
actions for ball
onClipEvent (load) {
stop();
}
работает на 100% если бедут пожилания пишите...
Nox Noctis
26.08.2002, 02:40
мда... :rolleyes:
"строили мы строили, и наконец - построили. да здравствуют мы. ура." © чебурашка :D
DeliMIter
26.08.2002, 11:16
2fiot
"Да ребята, учиться вам еще и учиться" (с) Иван, JA2.
P.S. Ничего личного, просто вспомнилось:)))))))))
сетяни вы чего ??? я на флеш основательно подсел месяц назад...
пишите баг репорт если что не так...
а вообще для полной красоты нужно дописать
on (rollOver, dragOver) {
if (main._currentframe>2) {
main.gotoAndPlay(2);
} else {
main.gotoAndPlay(1);
}
}
on (rollOut, dragOut) {
main.gotoAndPlay(4);
}
/* если будет время и жедлание сделаю просто отдельную компоненту... хотя не нужно придумывать велосипед.. просто нужно поискать... - в сети есть всё...*/
DeliMIter
26.08.2002, 13:43
То что ты не кричишь и не плюешься - уже хорошо. Просто юмор у нас такой. Да.
Nox Noctis
26.08.2002, 13:55
да лан, я верю, что там все работает, только вот разобраться в твоем варианте - даже не тянет :)
марсианский какой-то способ, если честно :)
:D :D :D все мы с этой большой красной планеты :D :D :D
знакомый где-то нашёл... довольно прикольно реализовано ;)
Nox Noctis
03.09.2002, 19:19
хмм... любопытно :) через компоненту прикольнее :)
только больно уж узкая область применения... только ролловер и только от начала до конца и наоборот...
по крайней мере возможности менять евенты-триггеры(через свойства компоненты) точно не хватает...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.