Необходимо создать кнопку переключения паузы / возобновления во Flash CS3 AS3

Хорошо, я видел много вопросов и ответов о том, как кодировать кнопки паузы / возобновления, но ни одна из них не соответствует моим конкретным потребностям. Сначала позвольте мне объяснить, что у меня есть:

Я сделал обучающее видео по своей работе. Он состоит из снимков экрана и звуков. У меня есть кнопка "Вперед", которая переходит к следующему разделу (обычно это начало следующего аудиофайла), и кнопка "Назад", которая переходит к предыдущему разделу. Однако мне нужна кнопка паузы.

Теперь позвольте мне объяснить, как я это построил:

Я сделал фильм со скоростью 1 кадр / с. У меня есть слой для звука, слой для снимков экрана, слой для каждой кнопки и различные другие слои для выделения элементов на снимках экрана. На звуковом слое я поместил свой аудиофайл на сцену, а затем увеличил количество кадров, пока весь аудиофайл не мог воспроизводиться непрерывно. Таким образом, если звук длился 10 секунд, он живет в 10 кадрах. Затем я могу поместить свой снимок экрана на отдельный слой и сделать то же самое, чтобы изображение отображало ту же продолжительность времени, что и звук. Когда кадр заканчивается, он автоматически переходит к следующему кадру и продолжается до конца. Поскольку звук находится на сцене, зрителю не нужно ничего делать для воспроизведения звука.

После просмотра многих руководств кажется, что большинство людей используют код для воспроизведения звука, а не ставят его на сцену. Я не настолько опытен.

Итак, мой вопрос: с моей текущей настройкой, как я могу сделать кнопку переключения, которая в основном говорит: «Если звук воспроизводится, остановить все шоу при нажатии - если звук не воспроизводится, возобновить показ с последней позиции при нажатии»?

Большое вам спасибо, если вы можете помочь! Кроме того, я впервые задаю такой технический вопрос, пожалуйста, дайте мне знать, если вам понадобятся какие-либо другие конкретные детали.


person cholverson    schedule 08.01.2014    source источник


Ответы (1)


  1. Сначала убедитесь, что для всех аудиозаписей на вашей шкале времени установлено значение «Поток». Для этого нажмите на рамку, в которой находится ваш звук, найдите звуковую панель, измените ее с «Событие» на «Поток». это гарантирует, что при остановке временной шкалы звук остановится и возобновится при воспроизведении временной шкалы.
  2. Что касается кнопок, просто сделайте одну, которая вызывает stop () на шкале времени, и другую, которая вызывает play (). Это остановит временную шкалу, где бы она ни находилась, и возобновит ее во время воспроизведения.
var myTimeline:MovieClip;//link to the movieclip where your timeline animation lies
var btnPause:SimpleButton;//link to your pause button
btnPause.addEventListener(MouseEvent.CLICK,function(event:MouseEvent):void{
    myTimeline.stop();
});
var btnResume:SimpleButton;//link to your resume button
btnResume.addEventListener(MouseEvent.CLICK,function(event:MouseEvent):void{
    myTimeline.play();
});
person mihai    schedule 08.01.2014
comment
Замечательно, я думаю, мы движемся в правильном направлении. Однако несколько вопросов: что касается мувиклипа, на который вы ссылаетесь в своем примере кода, у меня нет мувиклипа. У меня просто есть слой с изображениями, фильма на самом деле нет. Таким образом, звук воспроизводится, в то время как изображение отображается, если звук начинает говорить о чем-то новом, изображение меняется. Так что ссылка на myTimeline сбивает меня с толку, что мне использовать вместо этого? - person cholverson; 01.02.2014
comment
если AS3 находится на одной временной шкале с анимацией (в том же мувиклипе), тогда установите var myTimeline: MovieClip = this; так как это ваш график. - person mihai; 02.02.2014
comment
Это не. У меня есть слой общих действий со всем определенным, а затем только AS3 на слоях кнопок. Так, например, у меня есть кнопка «Далее» с таким кодом: Next1.addEventListener (MouseEvent.CLICK, Nclick1); Кнопка «Назад» с этим кодом: Back1.addEventListener (MouseEvent.CLICK, Bclick1); А затем на уровне общих действий у меня есть: // остановить воспроизведение на первом кадре stop (); функция Nclick1 (событие: MouseEvent): void {SoundMixer.stopAll (); gotoAndPlay (25); } функция Bclick1 (событие: MouseEvent): void {SoundMixer.stopAll (); gotoAndPlay (2); } - person cholverson; 03.02.2014
comment
Извините, я не могу понять, как сделать так, чтобы код выглядел красиво в этих комментариях! - person cholverson; 03.02.2014
comment
Может быть, это поможет, если вы подумаете об этом не как о видеоклипе, а как о слайд-шоу с повествованием. Я пытаюсь создать еще один с нуля, но само определение myTimeline все еще сбивает меня с толку. - person cholverson; 04.02.2014
comment
@cholverson было бы проще, если бы вы разместили здесь изображение (возможно, размещенное на imgur), чтобы я мог видеть, как выглядит ваша временная шкала flash IDE. - person mihai; 04.02.2014