Трябва да създадете превключващ бутон за пауза/възобновяване във Flash CS3 AS3

Добре, видях много въпроси и отговори за това как да кодирам бутони за пауза/възобновяване, но никой от тях не отговаря на конкретните ми нужди. Първо нека обясня какво имам:

Направих учебно видео за моята работа. Състои се от екранни снимки и звуци. Имам бутон за напред, който прескача към следващия раздел (обикновено началото на следващия аудио файл) и бутон за връщане назад, който отива към предишния раздел. Но имам нужда от бутон за пауза.

Сега нека обясня как го построих:

Направих филма на 1fps. Имам слой за аудио, слой за екранните снимки, слой за всеки бутон и различни други слоеве за подчертаване на неща в екранните снимки. На аудио слоя поставих моя аудио файл на сцената и след това изтеглих броя на кадрите, докато целият аудио файл можеше да се възпроизвежда без прекъсване. Така че, ако звукът е дълъг 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(event:MouseEvent):void { SoundMixer.stopAll(); gotoAndPlay(25); } функция Bclick1(event: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), за да мога да видя как изглежда вашата хронология на флаш IDE. - person mihai; 04.02.2014