{lang: 'de'}
Flashhilfe.de - Flash Community

Sound Instanz fängt von Alleine an [Flash 10]

 


AntwortenRegistrieren Seite1  

SaintGeorge#1
Benutzerbild von SaintGeorge
Beiträge: 4
Registriert: Oct 2010

18.11.2010, 15:35

Hallo kluge AS3 Scripter!

Ich habe ein Problem, wo ich einfach nicht weiter komme. Dabei ist wahrscheinlich einfach was Blödes. Ich tue aber schon Stunden rum grrr...

Ich habe bei einem AS3 Spiel eine Hintergrundmusik, die ich theoretisch (und eigentlich praktisch) ein/aus schalten kann und die Lautstärke verändern kann. Dabei läuft die Musik immer im hintegrund ab: sie wird nie gestoppt, das Lied kann sich verändern, wie einem Radio.

Es funktioniert wunderbar ab der zweiten Abspielung des ersten Liedes. Am Anfang wird (korrekterweise) eine Instanz des Liedes durch meine Funkltion onBackgroundMusicFinished aufgerufen - die sich auch mit Lautstärke etc. steuern lässt - es wird aber auch zusätzlich eine Instanz aufgerufen die mit voller Lautstärke bis zum Ende spielt. Ab dann ist alles OK.

Wo kommt diese Instanz her? Sie kommt auch wenn ich onBackgroundMusicFinished gar nicht aufrufe.

Momentan lade ich das Lied einfach aus der Bibliothek.

Hier auszugsweise die zutreffende Teile des scripts:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import flash.media.Sound;
   import flash.media.SoundChannel;
   import flash.media.SoundTransform;

//music and sound files
public var musicVolume:Number=1;
      var musicSetVolume:Number=1;
      var musicTransform:SoundTransform=new SoundTransform();

      public var backgroundMusicChannel:SoundChannel= new SoundChannel();
      var backgroundMusic:Music=new Music();
      
//Hier einmaliger Aufruf der function onBackgroundMusicFinished(null)


//plays music
      public function onBackgroundMusicFinished(event:Event):void {
           backgroundMusicChannel=backgroundMusic.play(0);
           adjustVolume();
           backgroundMusicChannel.addEventListener(Event.SOUND_COMPLETE,onBackgroundMusicFinished);
        }
      
      public function musicCLICK(event:Event):void {
           musicON=! musicON;
           adjustVolume();
           showRadio();
        }
      
      public function adjustVolume():void {
           if (musicON==false){
              musicVolume=0;
           } else {
              musicVolume=musicSetVolume;
           }
           musicTransform.volume=musicVolume;
           backgroundMusicChannel.soundTransform=musicTransform;
        }



Hat wer eine Idee?

Danke für jede Hilfe!
Schlagwörter: Instance, Sound
Geändert von SaintGeorge am 18.11.10 um 15:43 Uhr
damuddamc#2
Benutzerbild von damuddamc
Beiträge: 16
Wohnort: Weinheim
Registriert: Oct 2010

19.11.2010, 20:42

guten abend

also ich glaube ich hatte den fehler anfangs auch.. das lag soviel ich weiß daran das du bevor du dem Soundchannel wieder einen neuen Track in onBackgroundMusicFinished zuweisst durch
ActionScript:
1backgroundMusicChannel=backgroundMusic.play(0);

einfach dem backgroundMusicChannel sagen
ActionScript:
1backgroundMusicChannel.stop();
SaintGeorge#3
Benutzerbild von SaintGeorge
Beiträge: 4
Registriert: Oct 2010

Themenautor/in

19.11.2010, 21:26

Hallo dammudanc,
danke für Deine Antwort!
Das hatte ich probiert, ohne Erfolg.
Ich habe aber inzwischen das Problem gelöst, nur ich weiß eigentlich immer noch nicht genau woran es lag.
Die Lösund kam dadurch, dass ich in der Bibliothek Music gelöscht und neu gebaut habe - dann funktionierte es einwandfrei. Also kein AS3 Fehler, sondern habe vermutlich irgendwie Music auf der root Timeline gehabt oder sowas?!?
Danke und Gruß

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2024 Sebastian Wichmann - Flashhilfe.de