Adobe Flash einfache Musik Steuerung

Steglich

Steglich

Aktives Mitglied
Thread Starter
Dabei seit
30.05.2003
Beiträge
206
Reaktionspunkte
0
Kann mir bitte jemand weiterhelfen? Ich habe schon länger nichts mehr mit Flash MX gemacht. Ich möchte eine einfache Musik Steuerung bauen.

In meinem Flash Dokument habe ich zwei Buttons: music on und music off;
Desweiteren habe ich ein etwas längeres Musikstück in die Bibliothek importiert.

Die Musik soll beim Aufruf des Films automatisch starten, mit dem Button music off soll ich sie ausschalten können und mit dem Button music on soll sie wieder gestartet werden, entweder von vorne oder da, wo sie durch music off stehen geblieben ist, je nachdem, was einfacher ist.

Ach ja noch etwas: Das Musikstück soll schon während des Herunterladens gestartet werden (streaming).

Wie muss ich das (wahrscheinlich relativ einfach) implementieren?
 
Hi,

hier die erste Lösung, allerdings ohne Streaming. Mir ist nicht bekannt, das man einen Streamed Sound pausieren kann. Entweder non-streamed oder mit attachSound()… das geht.

PHP:
//Actionscript 1.0 

//Soundobjekt definieren 
Sound = new Sound(); 
Sound.loadSound(url); 



//Pause 
SoundPos = Sound.position; 
Sound.stop(); 

//Pause gelöst 
Sound.start(SoundPos/1000);

Die 2. Lösung gibt es gleich. Ich bau dir das auch direkt in deine Fla… ich denke Streaming macht Sinn, da deine Audiofile sehr groß ist….

Liebe Grüße

Yves
 
Die 2. Lösung… leider fängt da der Sound immer von vorn an…

PHP:
_global.sound=new Sound(this);
_global.sound.setVolume(100);
_global.sound.loadSound('song1.mp3', true);
_global.status=true;

MovieClip.prototype.audioplay=function()
    {
    if(!_global.status)
        {
        _global.status=true;
        _global.sound.loadSound('song1.mp3', true);      
        }
    }
  
MovieClip.prototype.audiopause=function()
    {
    _global.status=false;
    _global.sound.stop();
    }

Falls jemand weiß, wie man auf eine streamed Soundobject mit start(), stop() zugreifen kann… lasst es mich wissen. Geht aber soviel ich weiß nicht.

Das einzige was man machen könnte, wäre die Lautstärke =0 zu setzen, dann läuft der Song zumindest nicht vom Anfang wieder los.

PHP:
_global.sound=new Sound(this);
_global.sound.setVolume(100);
_global.sound.loadSound('song1.mp3', true);

MovieClip.prototype.audioplay=function()
    {
    _global.sound.setVolume(100);
    }
  
MovieClip.prototype.audiopause=function()
    {
    _global.sound.setVolume(0);
    }

Liebe Grüße

Yves
 
Hi,

ich hab mal gerade in deine Fla geschaut. Dort hast du den Sound ja in der Bibliothek. Das heisst, er kann nicht gestreamt werden, da er erst zur Verfügung steht, wenn die ganze SWF auch geladen ist. Das kannst du dann also via Preloader erledigen…

Und dann musst du attachSound() verwenden. Das sieht dann so aus…

PHP:
//Actionscript 1.0
_global.sound=new Sound(this);
_global.sound.setVolume(100);
_global.sound.attachSound('remix');
_global.sound.start(0,999);

MovieClip.prototype.audioplay=function()
	{
	_global.sound.start(_global.soundPos/1000, 999);
	}
	
MovieClip.prototype.audiopause=function()
	{
	_global.soundPos=_global.sound.position; 
	_global.sound.stop();
	}

Wichtig ist, das der Song in der Library eine Linkage ID bekommt. Ohne „Export to first Frame“. Sonst gibt das Probleme mit dem Preloader, da der Sound noch vor diesen instanziert wird.
Also Workaround einfach in den Frame nach dem Preloader den Sound in einen Keyframe auf Event Stop legen. So komisch es auch klingt, man kann Instanzen von der Bühne attachen.

Ich schick dir jetzt mal die Version mit dem attachSound() zu. Falls du das lieber gestreamt haben willst… du findest ja hier die Anleitung und in deiner Email ebenfalls nochmal die Sources, die du dir auch hier herunterladen kannst.
Zum Streaming einfach das Script übernehmen und deinen Remix als Mp3 zu der swf ins Verzeichnis legen. Entweder benennst du dann den remix nach 'song1.mp3' um, oder passt im Script beim loadSound() Befehl das Target Parameter an.

Liebe Grüße

Yves
 
Zurück
Oben Unten