Soundfiles per Hotkey anwählen

sb2kde

Grünschnabel
Hallo,
Ich habe durch Zufall euer geniales Forum bzw. eure genialen Foren gefunden. Ich muss gestehen, dass ich schon längere Zeit nichts mehr mit Flash gemacht habe und gerade vor einem für mich unlösbaren Problem stehen!

Ich brauche bis morgen ein kleines Flash Programm, in welchem ich per Tastendruck (z.b. auf die Taste a) einen kleinen Sound/ein Geräusch abspielen lassen kann. (soll nicht geloopt werden)
Es sollen so etwa 10 mp3 Soundfiles per verschiedener Hotkeys anwählbar sein.

Ich habe auch schon im Internet gesucht, aber leider nur einige Bruchstückhafte Lösungen gefunden, deren Umsetzung dann auch leider kläglich gescheitert ist.

Ich würde mich freuen, wenn mir jemand erklären könnte wie man so etwas baut.

Zum Schluss poste ich hier gerade mal die beiden Vorschläge die ich schon zu dem Thema gefunden habe, die aber wiegesagt an der Umsetzung scheiterten!

Vielen Dank für eure Hilfe
MfG Sebastian

Vorschlag 1:

//actionscript
PHP:
on (keyPress "f") {
  f = new Sound();
  f.loadSound("f.mp3", true); 
}


Vorschlag 2:
PHP:
mySound = new Sound(this);

function att_s(file) {
  stopAllSounds();
  mySound.attachSound(file);
  mySound.start(0, 0);
}

keyListener = new Object();

keyListener.onKeyDown = function() {
  if (Key.isDown(112)) {
    att_s("eins");
  }
  if (Key.isDown(113)) {
    att_s("zwei");
  }
  if (Key.isDown(114)) {
    att_s("drei");
  }
  if (Key.isDown(115)) {
    att_s("vier");
  }
  if (Key.isDown(116)) {
    att_s("fünf");
  }
  if (Key.isDown(117)) {
     att_s("sechs");
  }
  if (Key.isDown(118)) {
    att_s("sieben");
  }
  if (Key.isDown(119)) {
    att_s("acht");
  }
  if (Key.isDown(120)) {
    att_s("neun");
  }
};
Key.addListener(keyListener);
 
Zuletzt bearbeitet von einem Moderator:
Hi,

ganz verkehrt sind Deine Ansätze nicht. Es kommt natürlich darauf an, ob Dein Sound in der Bibliothek oder als externe mp3-Datei vorliegt. Im letzteren Fall würde z.B. folgendes funktionieren:
PHP:
var listener = new Object();
var mysound = new Sound();

function playSound(filename) { // Abspielen einer Sounddatei
    mysound.loadSound(filename, false); // oder true für Streaming
    mysound.onLoad = function() {
        this.start(); // Starten nach dem Laden
    }
}

listener.onKeyDown = function () {
    switch(Key.getAscii()) { // Ascii-Code ermitteln
        case 97: playSound("wave1.mp3"); break; // "a"
        case 102: playSound("wave2.pm3"); break; // "f"
        case 117: playSound("wave3.mp3"); break; // "u"
    }
}

Key.addListener(listener); // Listener hinzufügen

Gruß

P.S.: und verwende das nächste Mal bitte die Code- bzw. PHP-Tags, dadurch wird auch AS Code viel lesbarer (ich hab das mal für Dich getan). ;)
.
 
Erst schonmal vielen Dank für die schnelle Antwort, hab mich sehr gefreut darüber!

Ich habe jetzt die *.swf Datei mit den drei *.mp3 Dateien (wave1.mp3; wave2.mp3; ....) in einen Ordner getan und die entsprechende Taste auf der Tastatur, zum abspielen gedrückt!

Aber leider tut sich immer noch nichts...:confused:

Ist das denn der gesamte Quelltext, den man braucht, oder muss noch irgendwas davor oder dahinter geschrieben werden, bzw. braucht man noch andere Ebenen innerhalb der Flash Datei? Muss ich vielleicht noch irgendetwas anderes einstellen, oder woran kann es liegen, dass ich es nicht hinbekomm?

Danke nochmals, und noch einen angenehmen Abend
Sebastian
 
Hi,

ja, das ist der komplette Quelltext - ich habe das direkt in Flash eingetippt, getestet und in den Beitrag kopiert, kann also eigentlich für Fehlerfreiheit garantieren (alle Funktionen in dem Script sind ab Flash 6 implementiert). Wenn Du sicher bist, dass die Sounddateien in einem Format vorliegen, das Flash lesen kann (Codec!), fang doch mal an, das Schritt für Schritt zu debuggen, z.B. mit ein paar trace-Aktionen:
PHP:
function playSound(filename) {
    trace("Ich lade Sound: " + filename);
    mysound.loadSound(filename, false);
    mysound.onLoad = function() { 
        trace("Sound geladen");
        this.start();
    } 
}
wenn damit keine Ausgabe kommt, mache das Gleiche mit der Listener-Funktion und überprüfe, ob Du nicht vielleicht für Flash 5 exportierst.

Natürlich kannst Du auch Sounds aus der Bibliothek verwenden:
PHP:
function playSound(filename) { // Abspielen einer Sounddatei 
    mysound.attachSound(filename);
    mysound.start();
}

Gruß

.
 
Jetzt klappts!
Es lag wohl doch am Codec der Dateien, die Dateien sind nämlich alles nur kurze Geräusche und irgendwas muss wohl mit dem mp3 codec nicht gestimmt haben! Ich musste sie einfach nochmal neu codieren und dann kamen sie auch schon aus den Lautsprechern!

SUPER...:-)

und nochmal DANKE! :)
 
Zurück