Problem beim Abspielen von Sounds mit JS

Schind

Mitglied
Hallo!
Kenn mich leider in Flash net besonders aus, und hab daher eine Frage an die Profis..

ich will ein Memory Programmieren (HTML, JavaScript), wo bei Aufdecken von 2 verschiedenen Karten ein Sound und beim Aufdecken von 2 gleichen Karten ein anderer Sound abgespielt werden soll. Außerdem soll noch ein Sound abgespielt werden, wenn das Spiel gewonnen wurde.

Die Sounds liegen im MP3-Format vor, ich habe die 3 Dateien in Flash eingebunden und durch leere Keyframes mit der Action-Script-Methode stop() getrennt, damit immer nur eines davon abgespielt wird.

Die swf-datei wurde in HTML eingebunden und mit JavaScript bei einem angegebenen Frame gestartet.

Das Problem liegt nun darin: Soll 2 mal (oder öfter) hintereinander der gleiche Sound abgespielt werden (wenn 2 Mal hintereinander ungleiche Paare aufgedeckt wurden), dann ist ab dem 2. Mal nichts mehr zu hören.
Werden aber verschiedene Sounds hintereinander abgespielt(ungleich, gleich, ungleich etc.) dann funktioniert alles.

Bitte um Hilfe!!
p.s.: verwende Flash 8
 
kommt sofort :)

das swf-File wird mit HTML eingebettet:
PHP:
<object
    classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
	codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"
	width="5"
	height="5"
	id=sound>
	  <param name="movie" value="sound.swf">
	  <param name="quality" value="high">
	  <param name="play" VALUE="false">
	  <param name="loop" VALUE="false">

  <embed
      name="sound"
	  src="sound.swf"
	  quality="high"
	  width="5"
	  height="5"
	  PLAY="false"
	  LOOP="false"
	  QUALITY="high"
	  swLiveConnect="true"
	  pluginspage="http://www.macromedia.com/go/getflashplayer" >

  </embed>
</object>

dann hab ich folgende 3 JS-Funktionen, wobei die erste dazu dient, den Flash-Film anzusteuern, die anderen nur zur Überprüfung (ob Film fertig geladen, bzw. welcher Browser):
PHP:
function playmovie(movieName,frame) {
  if (movieIsLoaded(thisMovie(movieName))) {
    thisMovie(movieName).GotoFrame(frame);
  }
}

function movieIsLoaded (theMovie) {
  if (typeof(theMovie) != "undefined") {
    return theMovie.PercentLoaded() == 100;
  } else {
    return false;
  }
}

function thisMovie(movieName) {
  if (navigator.appName.indexOf ("Microsoft") !=-1) {
    return window[movieName]
  }	else {
    return document[movieName]
  }
}

im weiteren Code wird die Funktion dann z.B. so aufgerufen:
PHP:
if(2 gleiche Karten)
  playmovie("sound","10");
 else
   playmovie("sound","2");

wenn jetzt z.b. 2 mal hintereinander der else-Zweig ausgeführt wird, ist beim 2. Mal kein Ton mehr zu hören..

ich bin mir aber gar nicht sicher, ob der Fehler im JavaScript liegt, vielleicht ist auch im Film ein Problem.
ein sound geht von Frame 2 bis 8, dann ist ein Keyframe und der nächste Sound beginnt bei 10
 
ja, hab ich drin stehn. ich habs jetzt auch mit attachedSounds probiert, also 3 Frames, wo in jedem 1 MP3 angehängt ist, funktioniert aber leider auch nicht.
Gleicher Fehler wie beim anderen.
 
Zurück