Sound bei Mouseover nur einmal abspielen
Übersicht

Eyes_OnlyBetreff: Sound bei Mouseover nur einmal abspielen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Community,
ich habe ein (hoffentlich) kleines Problem. Ich habe ein Menü mit drei Buttons und wenn man mit der Maus über einen Button fährt, soll ein Sound abgespielt werden. Das Problem ist nun, dass, solange der Mauszeiger auf dem Button ist, der Sound immer wieder in einer Schleife abgespielt wird, weil die Bedingung (wenn Maus über Button, dann...) ja immer erfüllt ist. Wie kann ich realisieren, dass der Sound nur einmal abgespielt wird und zwar immer dann, wenn ich mit der Maus über den Button fahre? Ich habe mir schon alle Beiträge die ich über die SuFu gefunden habe angeschaut, aber entweder war nichts richtiges dabei oder ich bin nicht draus schlau geworden. Habe schon mit Schaltern (True, False) probiert und mit StopChannel und Millisecs() aber das klappt so richtig nicht. Vielleicht weiß ja jmd. Rat. ![]() BlitzBasic: [AUSKLAPPEN] Repeat |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da mußt du mit einer Statusvariablen arbeiten
Code: [AUSKLAPPEN] Repeat
For I=1 To 3 If ImageRectOverlap (maus, x, y, (SCREENWIDTH/2)-100, 150*I, 200, 60) Then Color 125,125,125 Rect (SCREENWIDTH/2)-100,150*I,200,60,1 menuselect=I ;#################################### If SoundStatus% = 0 Then PlaySound bla bla Soundstatus% = 1 End If ;################################### ; --> HIER MÜSSTE JETZT IRGENDWO DAS MIT DEM SOUND REIN DENKE ICH <-- ; Else Rect (SCREENWIDTH/2)-100,150*I,200,60,0 ;######################### Soundsstatus% = 0 ;######################### EndIf Color 255,255,255 Text SCREENWIDTH/2, (I*150)+30, MenuName$(I),1,1 Next DrawImage maus, x, y Flip 0 If MouseHit(1) Then If menuselect=1 Then SpielStart() If menuselect=2 Then HowToPlay() If menuselect=3 Then SpielEnde() EndIf Forever End so oder so ähnlich vielleicht für jeden Button extra |
||
[BB2D | BB3D | BB+]
|
Eyes_Only |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke. Funktioniert aber nicht.
Soweit hatte ich das auch schon mit den Statusvariablen. Vlt. muss ich das wirklich für jeden Button einzeln machen, das mit dem Array ist zwar schön so, scheint sich aber nicht mit dem Sound zu vertragen... ![]() |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Selbstredend musst Du für jeden Button eine eigene Schaltervariable haben. Hier bieten sich Type![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
kann so auch nicht klappen....
also ich nehme mal an, dass der Sound pro Button nur einmal abgespielt werden soll. Erst nachdem dann die Maus den Button wieder verlassen hat, soll die Soundausgabe wieder möglich sein. so wie Du es jetzt hast, schalten die jeweils anderen 2 Button bei der Abfrage die Soundmöglichkeit wieder ein. Also musst Du feststellen, dass sich die Maus wirklich in keinem der 3 Buttons befindet. BlitzBasic: [AUSKLAPPEN] Global SoundStatus% |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
Eyes_Only |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Tausend Dank Midimaster!
Und danke auch an BladeRunner für den Hinweis mit den Types. Zwischenzeitlich hatte ich es so gelöst, dass ich jeden Button einzeln angesprochen habe: BlitzBasic: [AUSKLAPPEN] If ImageRectOverlap (maus, x, y, (SCREENWIDTH/2)-100, 150, 200, 60) Then Aber das gibt eine ganze Menge mehr Code und ist auch nicht gerade übersichtlich. Der nächste Schritt wäre dann die Umwandlung in Types gewesen. Aber so kann ich jetzt jedenfalls das Menüarray beibehalten. Klasse! ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group