为音乐播放器制作快进按钮和快退按钮?

时间:2012-10-24 02:45:32

标签: actionscript-3 mp3 audio-player

我需要制作一个快进按钮和倒带按钮我有其他所有东西只需要这两个,我不知道该怎么做。我也在使用Flash,动作脚本3

我看了很多例子,但他们所做的一切与我不同。这是我学习如何加载曲目并制作播放和暂停按钮的方式,但我不知道如何添加倒带和转发

这是我到目前为止所做的:

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);

1 个答案:

答案 0 :(得分:0)

倒带和转发功能由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();
}

}