Во-первых, присвойте каждому экземпляру клипа сцены имя экземпляра. Сделайте что-то, что вы можете анализировать, например "clip_1", "clip_2", "clip_3" и т. Д.
Во-вторых, поместите метки кадров в каждый из кадров, где у вас есть клипы сцены, названные так же, как клипы: «scene_1», «scene_2» и т. Д.
Теперь создайте новый слой ActionScript на своей основной временной шкале и убедитесь, что его временная шкала продолжается до конца основной временной шкалы. у него автоматически будет пустой ключевой кадр в кадре 1.
Мы собираемся создать переменную для хранения ссылки на клип, который воспроизводится в данный момент:
var currentClip:MovieClip = null;
Существует несколько способов отслеживания текущего клипа - все они в какой-то момент утомительны, если вы не запланировали реализацию заранее. Я собираюсь попробовать тот, который, я думаю, будет проще для вас реализовать.
В каждом кадре ваших действий, где находится видеоклип, вы добавите следующую строку кода:
currentClip = eval("clip_x");
Вам нужно будет изменить значение x в «clip_x» в каждом кадре, чтобы оно соответствовало номеру клипа, находящегося в кадре.
Теперь вернитесь ко второму слою действий, который вы создали - здесь мы будем обрабатывать действия rev, ff, play и pause.
function Play() : Void {
if(currentClip!=null && currentClip!=undefined) {
currentClip.play();
}
}
function Pause() : Void {
if(currentClip!=null && currentClip!=undefined) {
currentClip.stop();
}
}
Хорошо, у нас есть игра и пауза. То, как вы будете обрабатывать FF и REV, будет зависеть от того, как вы хотите, чтобы пользователь взаимодействовал с этими кнопками. Обычно есть два подхода: «Прыжок» и «Сканирование». Подход «Jump» перемещает точку воспроизведения вперед / назад на заранее определенное количество кадров при каждом нажатии кнопки. Подход «Сканирование» перемещает точку воспроизведения вперед / назад по X кадрам в секунду, пока кнопка удерживается нажатой, где X - частота кадров вашего фильма.
Я думаю, что подход Jump будет для вас наиболее простым для реализации:
var JUMP_RATE = 30; // это количество кадров, которые нужно «прыгать» каждый раз, когда мы нажимаем кнопки «ff» или «rev»
function FF() : Void {
if(currentClip!=null && currentClip!=undefined) {
if(currentClip._currentFrame + JUMP_RATE < currentClip._totalFrames)
currentClip.gotoAndPlay(currentClip._currentFrame + JUMP_RATE);
else
currentClip.gotoAndStop(currentClip._totalFrames);
}
}
function REV() : Void {
if(currentClip!=null && currentClip!=undefined) {
if(currentClip._currentFrame - JUMP_RATE > 0)
currentClip.gotoAndPlay(currentClip._currentFrame - JUMP_RATE);
else
currentClip.gotoAndPlay(0);
}
}
Теперь все, что вам остается сделать, - это создать свои кнопки и добавить вызовы функций к их событиям onPress или onRelease.
Удачи!