2

I need to make a fast forward button and rewind button I have everything thing else just need those two and I'm not sure how to do it. Also I'm using Flash, Action script 3

I have looked at a bunch of examples but all of them do it differently then me. This is the way I learned how to load tracks and make play and pause buttons, but im not sure how to add rewind and forward

Here is what I have so far:

import flash.media.Sound;
import flash.media.SoundChannel;

import flash.net.URLRequest;

import flash.events.MouseEvent;
import flash.events.Event;

var myChannel:SoundChannel = new SoundChannel;
var track:Sound;

var trackToLoad:String;
var trackName:String;
var trackTime:String;




function stopTrack(e:MouseEvent) :void {
        myChannel.stop();
}

function reStartTrack(e:MouseEvent) :void {
        myChannel.stop();
        myChannel = track.play();
}


function playTrack(e:MouseEvent) :void {
        switch(e.target.name) {
    case "track1":
    trackToLoad = "musicForImport/11 Everlong.mp3";
    trackName = "Foo Fighters • Everlong"
    break;

    case "track2":
    trackToLoad = "musicForImport/02 War Is a Cemetery.mp3";
    trackName = "Gob • War is a Cemetery"
    break;

    case "track3":
    trackToLoad = "musicForImport/03 The Wind Cries Mary [Stereo].mp3";
    trackName = "Jimi Hendrix • The Wind Cries Mary"
    break;

    case "track4":
    trackToLoad = "musicForImport/03 Work.mp3";
    trackName = "Jimmy Eat World • Work"
    break;

    case "track5":
    trackToLoad = "musicForImport/02 Jumpin' Jack Flash.mp3";
    trackName = "The Rolling Stones • Jumpin' Jack Flash"
    break;

    case "track6":
    trackToLoad = "musicForImport/04 Don't Walk Away Eileen.mp3";
    trackName = "Sam Roberts • Don't Walk Away Eileen"
    break;

    case "track7":
    trackToLoad = "musicForImport/Brace Yourself.mp3";
    trackName = "State of Us • Brace Yourself"
    break;

    case "track8":
    trackToLoad = "musicForImport/02 Wrong Way.mp3";
    trackName = "Sublime • Wrong Way"
    break;

    case "track9":
    trackToLoad = "musicForImport/04 Fat Lip.mp3";
    trackName = "Sum 41• Fat Lip"
    break;

    case "track10":
    trackToLoad = "musicForImport/The Boys Are Back In Town.mp3";
    trackName = "Thin Lizzy • The Boys Are Back In Town"
    break;
}

track = new Sound;
track.load(new URLRequest(trackToLoad));
myChannel.stop();
myChannel = track.play();

displayTrackName.text = ":: " + trackName + " ::";
displayTrackName.x  = 103;
displayTrackName.y  = 440;
}

track1.addEventListener(MouseEvent.CLICK, playTrack);
track2.addEventListener(MouseEvent.CLICK, playTrack);
track3.addEventListener(MouseEvent.CLICK, playTrack);
track4.addEventListener(MouseEvent.CLICK, playTrack);
track5.addEventListener(MouseEvent.CLICK, playTrack);   
track6.addEventListener(MouseEvent.CLICK, playTrack);
track7.addEventListener(MouseEvent.CLICK, playTrack);
track8.addEventListener(MouseEvent.CLICK, playTrack);
track9.addEventListener(MouseEvent.CLICK, playTrack);
track10.addEventListener(MouseEvent.CLICK, playTrack);

stopTrackButton.addEventListener(MouseEvent.CLICK, stopTrack);
playTrackButton.addEventListener(MouseEvent.CLICK, reStartTrack);
Matthieu Brucher
  • 21,634
  • 7
  • 38
  • 62
zac
  • 45
  • 2
  • 10

1 Answers1

0

Rewind and forward functionality is implemented by Timer:

import flash.media.Sound;
import flash.events.MouseEvent;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.media.SoundChannel;

const REWIND_SPEED:int = 1000;

var sound:Sound = new MySound();
var timer:Timer = new Timer(100);
var soundChannel:SoundChannel;
var oldSoundChannel:SoundChannel; 

soundChannel = sound.play();

rewindBtn.addEventListener(MouseEvent.CLICK, rewindBtn_clickHandler);
stopRewindBtn.addEventListener(MouseEvent.CLICK, stopRewindBtn_clickHandler);
timer.addEventListener(TimerEvent.TIMER, timer_timerHandler);

function rewindBtn_clickHandler(event:MouseEvent):void
{
timer.start();
}


function stopRewindBtn_clickHandler(event:MouseEvent):void
{
timer.stop();
}

function timer_timerHandler(event:TimerEvent):void
{
if (!soundChannel)
    return;

if (soundChannel.position == sound.length)
{
    timer.stop();
}
else
{
        oldSoundChannel = soundChannel; 
    soundChannel = sound.play(oldSoundChannel.position + REWIND_SPEED);
    oldSoundChannel.stop();
}

}

Emin A. Alekperov
  • 1,067
  • 1
  • 16
  • 26