2014-01-08 4 views
1

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

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

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

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

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

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

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

ответ

1
  1. Сначала убедитесь, что для всех аудиостанций на вашей временной шкале установлено значение «Поток». К сделайте это, щелкнув по рамке, где находится ваш звук, найдите панель , измените ее с Event на Stream. это гарантирует, что когда таймлайн остановлен, звук останавливается и возобновляется при воспроизведении временной шкалы .
  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(); 
}); 
+0

Awesome, я думаю, что мы движемся в правильном направлении. Несколько вопросов: Что касается мувиклипа, на который вы ссылаетесь в своем примере кода, у меня нет мувиклипа. У меня просто слой с изображениями, на самом деле нет «фильма». Таким образом, звук воспроизводится, а пока изображение отображается, если звук начинает говорить о чем-то новом, изображение меняется. Таким образом, ссылка myTimeline меня сбивает с толку, что я должен использовать вместо этого? – cholverson

+0

, если AS3 находится на одной временной шкале с анимацией (в том же мувиклипе), тогда установите var myTimeline: MovieClip = this; так как это ваш график. – mihai

+0

Это не так. У меня есть слой «Shared Actions» со всем определенным, а затем только AS3 на слоях кнопок. Итак, у меня есть кнопка Next с этим кодом: Next1.addEventListener (MouseEvent.CLICK, Nclick1); A Назад с этим кодом: Back1.addEventListener (MouseEvent.НАЖМИТЕ, Bclick1); И затем на слое общих действий у меня есть: // остановка воспроизведения на первом кадре stop(); Функция Nclick1 (событие: MouseEvent): void { \t SoundMixer.stopAll(); \t gotoAndPlay (25); } функция Bclick1 (событие: MouseEvent): void { \t SoundMixer.stopAll(); \t gotoAndPlay (2); } – cholverson