2

早送りボタンと巻き戻しボタンを作成する必要があります。他に必要なものはすべてありますが、その方法がわかりません。また、Flash、ActionScript3を使用しています

私はたくさんの例を見てきましたが、それらはすべて私とは違ったやり方でそれを行います。これは、トラックをロードし、再生ボタンと一時停止ボタンを作成する方法を学びましたが、巻き戻しと早送りを追加する方法がわかりません。

これが私がこれまでに持っているものです:

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

1 に答える 1

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

}

于 2012-10-24T03:53:19.680 に答える