• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-07-2010, 21:51   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2010
Beiträge: 27
Beginnerfrage - Sound Objekt in Flash

Hallo zusammen

Ich flashe mich gerade in ActionScript 3 rein und muss feststellen, dass es AS3 ganz schön in sich hat.

Bis jetzt habe ich einfache Basics gelernt, wie: Variabeln, Schleifen, Operatoren, Fallentscheidungen und Arrays ..., was sich alles noch ein wenig abstrakt anfühlt. Auf jeden Fall möchte ich als erstes kleines Projekt meinem Flashfilm beibringen, wie man externen Sound laden kann und vielleicht mit zwei Frames einen kleinen Sound-Button so nach dem On/Off-Schema zusammen bauen mit "goto..."

Mein Konzept sieht folgendermassen aus. Der Film soll zwei Frames haben. Auf dem ersten Frame soll die On-Schaltfläche stehen und auf Frame zwei die Off-Schaltfläche. Wenn man also über den eventhandler auf "On" klickt, soll per gotoandplay Frame zwei erscheinen und einen externen Sound laden (mp3) und den Sound so lange abspielen, bis ich dann auf "Off" klicke und zu Frame 1 wechsle, wo ich alle Sounds dann quasi wieder stoppe.

Mein Problem ist folgendes, ich schaffe es leider noch nicht mal auf einen leeren Film ein externes mp3 zu laden. Darum meine frage:

Kann mir jemand sagen, was der absolut einfachste Weg ist, ein externes mp3 zu laden?

Ich bin kurz vor dem verzweifeln.

PS: Hab schon sowas wie hier probiert, was aber nur zu Syntaxerrors geführt hat: http://flashexplained.com/sound/load...-actionscript/

Geändert von heliumator (21-07-2010 um 21:55 Uhr)
heliumator ist offline   Mit Zitat antworten
Alt 21-07-2010, 23:32   #2 (permalink)
öcher flasher
 
Benutzerbild von rady
 
Registriert seit: Feb 2008
Beiträge: 266
Tach,

schon mal was von einer Dokumentation von Flash gehört. Daaaaaaa stehen gaaaaanz viele Dinge drin, wie, was und woooo......

Daaaaaann klickst du auf die Sound Klasse in der Doku und scrollsr runter

Aber für dich der Direktlink dazu:
flash.media.Sound (ActionScript 3.0)


Einfach mal nach ganz nach unten scrollen, da findest du deine Lösung. Achja wenn du externe Files lädst, musst du natürlich deine fla auch irgendwo vorher abspeichern und von diesem Speicherort setzt du dann einfach den relativen Pfad zu deinem Mp3 File.
rady ist offline   Mit Zitat antworten
Alt 21-07-2010, 23:49   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2010
Beiträge: 27
Ja, Danke für die Referenz.

Ich brauch also:

  • Sound(stream:URLRequest = null, context:SoundLoaderContext = null)
  • load(stream:URLRequest, context:SoundLoaderContext = null):void
  • play(startTime:Number = 0, loops:int = 0, sndTransform:SoundTransform = null):SoundChannel

Ist das korrekt? Mann, die Beispiele sind zu hart. Ich will noch gar keine Funktionen setzen. Nur das er ein Mp3 lädt beim Start des Films. Darum frage ich jetzt einfach mal höfflich, ob du mir die paar Zeilen vorkauen kannst? Ausserdem finde ich die Referenz ja nicht gerade zum brüllen. Der Code ist nirgends auskommentiert, was einem Beginner weiterhelfen könnte.

...und die Verzweiflung geht weiter.

Geändert von heliumator (21-07-2010 um 23:52 Uhr)
heliumator ist offline   Mit Zitat antworten
Alt 22-07-2010, 00:03   #4 (permalink)
öcher flasher
 
Benutzerbild von rady
 
Registriert seit: Feb 2008
Beiträge: 266
Richtig. Geht doch. Das wäre ja auch zu schön wenn die in den Beispielen jede Zeile noch kommentieren, zumal die Eigenschaften, Methoden und Events darüber alle erklärt sind.

Das ist der Code zum Laden und Abspielen einer Musikdatei:
ActionScript:
  1. var url:String = "DeineMuckePfad.mp3";
  2. var song:SoundChannel;
  3. var request:URLRequest = new URLRequest(url);
  4. var soundFactory:Sound = new Sound();
  5. soundFactory.load(request);
  6. song = soundFactory.play();
rady ist offline   Mit Zitat antworten
Alt 22-07-2010, 00:11   #5 (permalink)
Neuer User
 
Registriert seit: Jul 2010
Beiträge: 27
Ok, ich hab mir aus ein paar Codefragmenten mal die drei Zeilen rausgesucht, die funktionieren:

Code:
var s:Sound = new Sound(new URLRequest("http://www.helpexamples.com/flash/sound/song1.mp3"));
var fl_SC:SoundChannel;
fl_SC = s.play();
Zuerst muss also immer ein Sound Objekt definiert werden? Darf ich mal zusammenfassen:

"s" ist die Variabel mit der ein Sound Objekt verknüpft ist oder so ähnlich? Diese kriegt "new Sound", welches einen neuen URLRequest in der Klammer definiert? Danach wird ein SoundChannel auf die Variabel fl_SC gelegt und dann diese gleichgesetzt mit dem Sound Objekt und der Eigenschaft oder Funktion play, welche das Sound Objekt über den SoundChannel abspielt? Mann, ich bin leicht verwirrt. Funktioniert so das Laden eines externen mp3s?

Bitte um kurze Korrektur.
heliumator ist offline   Mit Zitat antworten
Alt 22-07-2010, 00:21   #6 (permalink)
Neuer User
 
Registriert seit: Jul 2010
Beiträge: 27
Zitat:
Zitat von rady Beitrag anzeigen
Richtig. Geht doch. Das wäre ja auch zu schön wenn die in den Beispielen jede Zeile noch kommentieren, zumal die Eigenschaften, Methoden und Events darüber alle erklärt sind.

Das ist der Code zum Laden und Abspielen einer Musikdatei:
ActionScript:
  1. var url:String = "DeineMuckePfad.mp3";
  2. var song:SoundChannel;
  3. var request:URLRequest = new URLRequest(url);
  4. var soundFactory:Sound = new Sound();
  5. soundFactory.load(request);
  6. song = soundFactory.play();
Ok, mein grosser Meister. Dann bitte ich mal um Aufklärung. Sollte das so bereits funktionieren? Was macht soundFactory? Hab das *.fla und das *.mp3 im gleichen Verzeichnis gesaved.

Die Ausgabe spuckt das hier aus:

Code:
Error #2044: IOErrorEvent unverarbeitet. text=Error #2032: Stream-Fehler.
	at sound_import_fla::MainTimeline/frame1()
Mann das Beispiel ist zu hart und das nur um ein mp3 zu laden? Was ich ganz schön finde, dass du noch eine Variable als String mit dem Pfadnamen gemacht hast. Versteh das Beispiel glaube ich, aber eben: "nix da funktionieren".
heliumator ist offline   Mit Zitat antworten
Alt 22-07-2010, 00:28   #7 (permalink)
Neuer User
 
Registriert seit: Jul 2010
Beiträge: 27
Ok, du bist wirklich ein grosser Meister! Es lag an dem MP3, der Codec muss wohl irgendwie nicht flashtauglich sein? Was muss ich für einen benutzen? Den hier will er nicht schlucken: MPEG-4-Audio. Hat aber auch die Endung mp3.

Hehe. Meine Zeilen haben aber deinen langen Code um längen geschlagen. Aber du bist trotzdem der grosse Meister.

Dann gleich mal meine Hochachtung und bedanke mich für deine Mühe!

Geändert von heliumator (22-07-2010 um 00:41 Uhr)
heliumator ist offline   Mit Zitat antworten
Alt 22-07-2010, 00:45   #8 (permalink)
öcher flasher
 
Benutzerbild von rady
 
Registriert seit: Feb 2008
Beiträge: 266
Jaja....."grosser Meister"?? Haste was getrunken

Wenn dein Code ja meinen um Längen geschlagen hat, dann müsste ja deiner länger sein .
Ich habe es so formuliert, um es verständlicher für dich zu machen. Deine Version ist die abgekürzte und genau das selbe. (Die mir ebenfalls sehr gut bekannt ist).

Mehr Informatioen u.a. zum Codec kannst du hier nachlesen:

List of codecs supported by Adobe Flash Player

Du könntest auch auf die Soundchannel Klasse verzichten und direkt mit
Code:
s.play()
abspielen. Jedoch brauchste SoundChannel ob deine Musik wieder zu stoppen, was du ja schliesslich vor hast.

Das ist die kürzeste Version, um ein Mp3 File zu laden und abzuspielen (haha, noch kürzer ):
ActionScript:
  1. var soundFactory:Sound = new Sound(new URLRequest("DeinMucke.mp3"));
  2. soundFactory.play();

Geändert von rady (22-07-2010 um 00:47 Uhr)
rady ist offline   Mit Zitat antworten
Alt 22-07-2010, 00:58   #9 (permalink)
Neuer User
 
Registriert seit: Jul 2010
Beiträge: 27
Zitat:
Zitat von rady Beitrag anzeigen
Jaja....."grosser Meister"?? Haste was getrunken

Wenn dein Code ja meinen um Längen geschlagen hat, dann müsste ja deiner länger sein .
Ich habe es so formuliert, um es verständlicher für dich zu machen. Deine Version ist die abgekürzte und genau das selbe. (Die mir ebenfalls sehr gut bekannt ist).

Mehr Informatioen u.a. zum Codec kannst du hier nachlesen:

List of codecs supported by Adobe Flash Player

Du könntest auch auf die Soundchannel Klasse verzichten und direkt mit
Code:
s.play()
abspielen. Jedoch brauchste SoundChannel ob deine Musik wieder zu stoppen, was du ja schliesslich vor hast.

Das ist die kürzeste Version, um ein Mp3 File zu laden und abzuspielen (haha, noch kürzer ):
ActionScript:
  1. var soundFactory:Sound = new Sound(new URLRequest("DeinMucke.mp3"));
  2. soundFactory.play();
Darum mein hochachtungsvoller und geschätzer Meister, werde ich von Ihnen noch viel lernen können. Sie haben mich um eine Kürze geschlagen.

Yeah, fun at the side pushed. Dank dir nochmals für deine Hilfe. Mann, ich wär fast verzweifelt und hätte nicht mehr weiter gewusst.
heliumator ist offline   Mit Zitat antworten
Alt 22-07-2010, 01:42   #10 (permalink)
Neuer User
 
Registriert seit: Jul 2010
Beiträge: 27
Auf jeden Fall hats definitiv geklappt. Für alle die den Code wollen:

Frame1

Code:
var url:String = "deinMp3Name.mp3";
var song:SoundChannel;
var request:URLRequest = new URLRequest(url);
var soundFactory:Sound = new Sound();
soundFactory.load(request);

playMusic.addEventListener(MouseEvent.CLICK, playFunction);

	function playFunction(e:MouseEvent):void {
	
		song = soundFactory.play(); 
		gotoAndStop(2);
	}

stop();
(Anmerkung: playMusic ist der Instanzname des Play Buttons)


Frame2

Code:
stopMusic.addEventListener(MouseEvent.CLICK, stopFunction)

	function stopFunction(event:MouseEvent):void{

		song.stop();
		gotoAndStop(1);
	}
(Anmerkung: stopMusic ist der Instanzname des Stop Buttons)

Das Mp3 muss im selben Verzeichnis liegen wie die *.fla Datei und das Mp3 sollte auch einen Codec besitzen, welcher von Flash unterstützt wird (List of codecs supported by Adobe Flash Player). Ansonsten müsst ihr den Pfad umschreiben nach der Verzeichnisstruktur: ../Ordner/Sound.mp3

Ein kleines gezipptes Beispiel wird noch folgen!


Geändert von heliumator (22-07-2010 um 04:06 Uhr)
heliumator ist offline   Mit Zitat antworten
Alt 22-07-2010, 11:19   #11 (permalink)
öcher flasher
 
Benutzerbild von rady
 
Registriert seit: Feb 2008
Beiträge: 266
Wir sind schon alle gespannt drauf und das alles fast ohne Hilfe
rady ist offline   Mit Zitat antworten
Alt 22-07-2010, 13:18   #12 (permalink)
Neuer User
 
Registriert seit: Jul 2010
Beiträge: 27
Nun folgen die Taten. Das versprochene Zip. Falls mal jemand was ähnliches machen möchte oder einfach glatt am verzweifeln ist und nicht weiss, wie man ein Sound Objekt in Flash erzeugt.

Das komplette Teil mit Sound ist hier:

MEGAUPLOAD - The leading online storage and file delivery service
Angehängte Dateien
Dateityp: fla flash_player.fla (710,9 KB, 9x aufgerufen)
heliumator ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Sound in Flash-Objekt via Javaskript stoppen DocPommes Alternative Technologien 1 09-02-2006 13:39
Steuerung für Sound-Objekt steuert anderen sound mit medien_freak ActionScript 1 1 31-07-2005 13:18
new sound objekt, aber kein Sound Chrisdelacreme Flash MX 1 19-04-2005 02:49
Beginnerfrage: Bei RollOver ein Funktion wiederholt ausführen DaHofer ActionScript 1 8 27-02-2004 12:33
Sound-Objekt schubst 2.Sound-Objekt an A.R.T. ActionScript 1 6 03-09-2001 18:06


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:55 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele