PDA

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


Татхен
26.06.2002, 01:51
Итак, проблема в следующем: никак не могу найти описание обратной анимации :( Надо сделать так, чтобы по нажатию кнопки несколько кадров (но не все в мувике! Допустим, из 50го обратно до 10, а там - остановка). КАК СДЕЛАТЬ??? Подскажите, ПЛЗ!!!!

Nox Noctis
26.06.2002, 02:29
таких тем было очень много (очень ) :)
даже если посчитать за последний месяц...

я недавно в исходники добавил вариант решения этой задачи...
(программирование -> другое -> advanced playhead control)

а стобы остановка произошла в определенном кадре, тебе нужно в событии onClipEvent(enterFrame) любого клипа проверять на каком кадре сейчас идет проигрывание (см. _currentframe)

Татхен
27.06.2002, 16:55
У меня Flash 5й, а не МХ :(

Nox Noctis
27.06.2002, 17:18
тогда все делается через онКлипЕвент(ентерфрейм).

– останавливаем клип, который нужно запустить назад
– если нужно, то gotoAndStop(кадр_с_которого_нужно_начать);
– на любом клипе делаем событие onClipEvent(enterFrame) в котором пишем следующее:

if (clip._currentframe!=endFrame) {
clip.prevFrame();
} else {
clip.stop();
}
где clip - это путь к клипу, которым надо управлять, а endFrame - это номер кадра на котором нужно остановиться.

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

onClipEvent(enterFrame) {
if (clip) {
if (clip._currentframe!=endFrame) {
clip.prevFrame();
} else {
clip.stop();
delete clip;
}
}
}
то есть clip - это переменная содержащая ссылку.
когда нужно запустить управление клипом - мы эту переменную определяем, когда нужно отключить управление клипом, мы эту переменную стираем.

можно все это оформит в виде функции, которой, например, передавать параметрами откуда докуда играть и ссылку на клип.

но в любом случае эту функцию нужно вызывать по ентерФрейму

дешево и сердито :)

Nox Noctis
27.06.2002, 17:44
например:


// функция запускающая обратную перемотку
// link - ссылка на нужный мувик, from - начиная с какого кадра играть, to - на каком кадре остановиться
function reverse(link, from, to) {
link.gotoAndStop(from);
control.clip = link;
control.endFrame = to;
}
//
// 'control' - это имя клипа, управляющего проигрыванием
// на этом клипе висит следующее:
onClipEvent (enterFrame) {
if (clip) {
if (clip._currentframe>endFrame) {
clip.prevFrame();
} else {
clip.stop();
delete clip;
}
}
}

теперь когда нам нужно скажем прокрутить мувик '_root.test' с кадра 30 до кадра 20 пишем в любом экшне:

_root.reverse(_root.test, 30, 20);

Татхен
27.06.2002, 19:22
Спасибо за советы! Буду пробовать ..... :)