PDA

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


strelka
21.08.2002, 13:07
Доброго времени суток всем участникам конференции.
Вопрос вот какой: есть команда GotoAndPlay(номер фрейма).
А нет ли какой-нито команды или способа, чтобы проиграть ролик до заданного номер фрейма В ОБРАТНОМ ПОРЯДКЕ?
Спасибо.

strelka
21.08.2002, 13:32
И еще близкий вопрос: можно ли как-то задать границы проигрывания ролика (от какого фрейма до какого), кроме как прописав в конечном фрейме Stop() а в начальном - GotoAndPlay(x) ?

JeeP
21.08.2002, 13:32
prevFrame();

:)

JeeP
21.08.2002, 13:35
чтоб проверять - есть оператор if и свойство _currentframe, их и юзай!

strelka
21.08.2002, 13:38
Эта команда осуществляет переход на 1 кард обратно, а если надо прокрутить последовательно 20 кадров ролика???
Вероятно где-то надо написать функцию, которая 20 раз будет запускать эту команду, но где и как?
Или можно как-то проще?

strelka
21.08.2002, 13:41
А вот _currentframe - точно то что надо
спасиб!

JeeP
21.08.2002, 13:52
вероятно надо :p

тут тебе надо немного теории знать - для такого управления как хочешь ты обычно используют либо 3-х кадровые мувики(это было актуально для 5-ки и ниже), либо функции с onEnterFrame; и то и другое управляет процессом в заданном таймлайне!

например можешь так:

function backward(mc, endf) {
onEnterFrame=function() {
if (mc._currentframe == endf) {
return;
}
mc.prevFrame();
}
}

обращаешься как _root.backward(this, 1); - это ты уже знаешь

strelka
21.08.2002, 13:57
вот это точно поможет!
... после обеда :)

JeeP
21.08.2002, 14:10
поможет, кудаж оно денется :) :) :)

Nox Noctis
21.08.2002, 14:38
а для МХ есть тут одна фишка
http://www.flasher.ru/src/stats_1809/
проигрывание мувика в заданном направлении с заданным фреймрейтом... может пригодится...

strelka
21.08.2002, 15:47
... не знает границ :)

DeliMIter
22.08.2002, 13:22
Оригинал написал(а) strelka
... не знает границ...
...растеклась по полу безгранично грязной лужей...

Сори, просто не удержался. Nox, твой адвансед плэйхед контрол - глючный :))))))))

Nox Noctis
22.08.2002, 13:35
багрепорт давай а не пальцами маши :))

WD`
22.08.2002, 13:55
вот для 5-ки вариант..

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.
тоже корявость...
что делать, всем управляет фреймрейт, никуда от этого не деться :)

fiot
26.08.2002, 01:52
после того как прочилал тему решил сам попробывать... только через фреймы...
данный пример сделал исключительно ради интереса...

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. Ничего личного, просто вспомнилось:)))))))))

fiot
26.08.2002, 12:11
сетяни вы чего ??? я на флеш основательно подсел месяц назад...
пишите баг репорт если что не так...
а вообще для полной красоты нужно дописать
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
да лан, я верю, что там все работает, только вот разобраться в твоем варианте - даже не тянет :)
марсианский какой-то способ, если честно :)

fiot
30.08.2002, 16:55
:D :D :D все мы с этой большой красной планеты :D :D :D

fiot
03.09.2002, 12:23
знакомый где-то нашёл... довольно прикольно реализовано ;)

Nox Noctis
03.09.2002, 19:19
хмм... любопытно :) через компоненту прикольнее :)

только больно уж узкая область применения... только ролловер и только от начала до конца и наоборот...
по крайней мере возможности менять евенты-триггеры(через свойства компоненты) точно не хватает...