Действие Сценарий 3: Караоке-плеер - при воспроизведении, музыка не запустится снова, только текст - PullRequest
1 голос
/ 18 октября 2011

У меня проблема с Action Script 3. Я использую Flash CS5.

Я хочу создать маленького игрока в караоке.Это работает для первой игры, но не для второй.

В первом слое у меня есть плеер (музыка, кнопки и т. Д.).С помощью кнопки воспроизведения я запускаю аудио (mp3) и текст (текст).Я называю текст как экземпляр (это подслой основного слоя).

Проблема в том, что когда я заканчиваю песню и текст и хочу воспроизвести его снова, начинается только текст, а НЕ музыка.

Как я тоже могу загрузить музыку?

Вот мой код:

// Musik
var meinSound = new musik ();
var meinSoundKanal = meinSound.play ();
var meinSoundTransform = meinSoundKanal.soundTransform;
meinSoundKanal.stop ();
var soundPosition = 0;

// Play und Pause Button
var buttonZustand = "Play";

this.play_bt.addEventListener (MouseEvent.CLICK, buttonAendern);
function buttonAendern (Param) {
    if (buttonZustand == "Play") {
        this.play_bt.gotoAndStop (2);
        buttonZustand = "Pause";
        meinSoundKanal = meinSound.play (soundPosition);
        meinSoundKanal.soundTransform = meinSoundTransform;
        this.textanimation.play();
    } else {
        this.play_bt.gotoAndStop (1);
        buttonZustand = "Play";
        soundPosition = meinSoundKanal.position;
        meinSoundKanal.stop();
        this.textanimation.stop();
    }
}

// Volume Button
var volumeZustand = "An";

this.volume_bt.addEventListener (MouseEvent.CLICK, volumeAendern);
function volumeAendern (Param) {
    if (volumeZustand == "An") {
        this.volume_bt.gotoAndStop (2);
        volumeZustand = "Aus";
        meinSoundTransform.volume = 0;
        meinSoundKanal.soundTransform = meinSoundTransform;
    } else {
        volumeZustand = "An";
        this.volume_bt.gotoAndStop (1);
        meinSoundTransform.volume = 1;
        meinSoundKanal.soundTransform = meinSoundTransform;
    }
}

// Stop Button
this.stop_bt.addEventListener(MouseEvent.CLICK, LiedStoppen);
function LiedStoppen (e) {
    meinSoundKanal.stop();
    play_bt.gotoAndStop(1)
    this.textanimation.gotoAndStop(1)
}

// Lautstärkeregler
var bewegungsRaum=new Rectangle(361,357,168,0);

this.regler_bt.addEventListener(MouseEvent.MOUSE_DOWN, halten);

function halten(Parameter)
{
    this.regler_bt.startDrag(false, bewegungsRaum);
}

this.regler_bt.addEventListener(MouseEvent.MOUSE_UP, loslassen);

function loslassen(Parameter)
{
    this.regler_bt.stopDrag();
}


this.regler_bt.addEventListener(MouseEvent.MOUSE_MOVE, lautRegeln);
function lautRegeln(Param) {
    meinSoundTransform.volume = (this.regler_bt.x -361) / 168;
    meinSoundKanal.soundTransform = meinSoundTransform;
}

Надеюсь, вы мне поможете:)

Привет


ОБНОВЛЕНО:

// Musik
var meinSound = new musik ();
var meinSoundKanal = meinSound.play ();
var meinSoundTransform = meinSoundKanal.soundTransform;
meinSoundKanal.stop ();
var soundPosition = 0;

meinSoundKanal.addEventListener(Event.SOUND_COMPLETE, next_item_handler);
        function next_item_handler(e:Event):void{
         meinSoundKanal.stop();
         soundPosition = meinSoundKanal.position;
    }


// Play und Pause Button
var buttonZustand = "Play";

this.play_bt.addEventListener (MouseEvent.CLICK, buttonAendern);
function buttonAendern (Param) {
    if (buttonZustand == "Play") {
        this.play_bt.gotoAndStop (2);
        buttonZustand = "Pause";
        meinSoundKanal = meinSound.play (soundPosition);
        meinSoundKanal.soundTransform = meinSoundTransform;
        this.textanimation.play();
    } else {
        this.play_bt.gotoAndStop (1);
        buttonZustand = "Play";
        soundPosition = meinSoundKanal.position;
        meinSoundKanal.stop();
        this.textanimation.stop();
    }
}



// Volume Button
var volumeZustand = "An";

this.volume_bt.addEventListener (MouseEvent.CLICK, volumeAendern);
function volumeAendern (Param) {
    if (volumeZustand == "An") {
        this.volume_bt.gotoAndStop (2);
        volumeZustand = "Aus";
        meinSoundTransform.volume = 0;
        meinSoundKanal.soundTransform = meinSoundTransform;
    } else {
        volumeZustand = "An";
        this.volume_bt.gotoAndStop (1);
        meinSoundTransform.volume = 1;
        meinSoundKanal.soundTransform = meinSoundTransform;
    }
}

// Stop Button
this.stop_bt.addEventListener(MouseEvent.CLICK, LiedStoppen);
function LiedStoppen (e) {
    meinSoundKanal.stop();
    play_bt.gotoAndStop(1)
    this.textanimation.gotoAndStop(1)
}

// Lautstärkeregler
var bewegungsRaum=new Rectangle(361,357,168,0);

this.regler_bt.addEventListener(MouseEvent.MOUSE_DOWN, halten);

function halten(Parameter)
{
    this.regler_bt.startDrag(false, bewegungsRaum);
}

this.regler_bt.addEventListener(MouseEvent.MOUSE_UP, loslassen);

function loslassen(Parameter)
{
    this.regler_bt.stopDrag();
}


this.regler_bt.addEventListener(MouseEvent.MOUSE_MOVE, lautRegeln);
function lautRegeln(Param) {
    meinSoundTransform.volume = (this.regler_bt.x -361) / 168;
    meinSoundKanal.soundTransform = meinSoundTransform;
}

ОБНОВЛЕНО СНОВА: D

// Musik
var meinSound = new musik ();
var meinSoundKanal = meinSound.play ();
var meinSoundTransform = meinSoundKanal.soundTransform;
meinSoundKanal.stop ();
var soundPosition = 0;

meinSoundKanal.addEventListener(Event.SOUND_COMPLETE, next_item_handler);
    function next_item_handler(e:Event):void{
          var soundPosition = 0; 
          var meinSoundKanal = meinSound.play ();
    }


// Play und Pause Button
var buttonZustand = "Play";

this.play_bt.addEventListener (MouseEvent.CLICK, buttonAendern);
function buttonAendern (Param) {
    if (buttonZustand == "Play") {
        this.play_bt.gotoAndStop (2);
        buttonZustand = "Pause";
        meinSoundKanal = meinSound.play (soundPosition);
        meinSoundKanal.soundTransform = meinSoundTransform;
        this.textanimation.play();
    } else {
        this.play_bt.gotoAndStop (1);
        buttonZustand = "Play";
        soundPosition = meinSoundKanal.position;
        meinSoundKanal.stop();
        this.textanimation.stop();
    }
}

// Volume Button
var volumeZustand = "An";

this.volume_bt.addEventListener (MouseEvent.CLICK, volumeAendern);
function volumeAendern (Param) {
    if (volumeZustand == "An") {
        this.volume_bt.gotoAndStop (2);
        volumeZustand = "Aus";
        meinSoundTransform.volume = 0;
        meinSoundKanal.soundTransform = meinSoundTransform;
    } else {
        volumeZustand = "An";
        this.volume_bt.gotoAndStop (1);
        meinSoundTransform.volume = 1;
        meinSoundKanal.soundTransform = meinSoundTransform;
    }
}

// Stop Button
this.stop_bt.addEventListener(MouseEvent.CLICK, LiedStoppen);
function LiedStoppen (e) {
    meinSoundKanal.stop();
    play_bt.gotoAndStop(1)
    this.textanimation.gotoAndStop(1)
}

// Lautstärkeregler
var bewegungsRaum=new Rectangle(361,357,168,0);

this.regler_bt.addEventListener(MouseEvent.MOUSE_DOWN, halten);

function halten(Parameter)
{
    this.regler_bt.startDrag(false, bewegungsRaum);
}

this.regler_bt.addEventListener(MouseEvent.MOUSE_UP, loslassen);

function loslassen(Parameter)
{
    this.regler_bt.stopDrag();
}


this.regler_bt.addEventListener(MouseEvent.MOUSE_MOVE, lautRegeln);
function lautRegeln(Param) {
    meinSoundTransform.volume = (this.regler_bt.x -361) / 168;
    meinSoundKanal.soundTransform = meinSoundTransform;
}

1 Ответ

0 голосов
/ 18 октября 2011

Вы должны использовать класс soundChannel, чтобы проверить, закончилось ли воспроизведение звука или нет.

SndChannel.addEventListener(Event.SOUND_COMPLETE, next_item_handler);
    private function next_item_handler(e:Event):void{
         //location for next or prev or repeat link.
    }
...