Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Обратная анимация (http://www.flasher.ru/forum/showthread.php?t=33598)

Татхен 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

Спасибо за советы! Буду пробовать ..... :)


Часовой пояс GMT +4, время: 03:38.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.