i have a problem with Action Script 3. I use Flash CS5.
I want to create a little Karaoke Player. It works for the first play, but not for the second.
In the first layer i have my player (music, buttons, etc). With the play button i start the audio (mp3) and the lyrics (text). I call the text as instance (its a sub layer of the main layer).
Problem is, when i complete the song and the text and want to play it again, only the text starts and NOT the music.
How can i load the music, too?
Here is my code:
// 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;
}
I hope you can help me 🙂
Greets
UPDATED:
// 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;
}
UPDATED AGAIN 😀
// 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;
}
You should use
soundChannelclass to check whether the audio is finished its playing or not.