ChannelPlaying() verursacht Fehlermeldung [gelöst]
Übersicht

![]() |
KlipBetreff: ChannelPlaying() verursacht Fehlermeldung [gelöst] |
![]() Antworten mit Zitat ![]() |
---|---|---|
Folgender Code verursacht bei mir Fehlermeldungen:
Code: [AUSKLAPPEN] If ChannelPlaying(channel_menu_bgmusic) = False channel_menu_bgmusic = PlaySound(sfx_start) EndIf Der Debugger meint, es wäre ein Null Object. Ich lade sfx_start:TSound ganz normal mit LoadSound(). channel_menu_bgmusic:TChannel ist genau wie obrige Variable global deklariert. Ich verstehe nicht, wo der Fehler liegt. Ich will in meinem Hauptmenü den Sound nur einmal laufen haben, nicht sechsmal übereinander, deswegen die Überprüfung. EDIT: Ich habe das Abspielen auch schon so probiert: PlaySound channel_menu_bgmusic,sfx_start Das führt zu gleicher Fehlermeldung 0.o |
||
- Zuletzt bearbeitet von Klip am Di, Jan 03, 2006 15:30, insgesamt einmal bearbeitet
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dann kann wohl die File nicht geladen werden. Vielleicht verwendest du ein nicht unterstütztes Format wie mp3 oder dergleichen? | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Klip |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich verwende .ogg.
Der Sound wird abgespielt, so ist das nicht. Setze ich vor die ChannelPlaying()-Funktion einen Kommentar (und vor das EndIf), dann wird der Sound gespielt, halt nur mehrmals übereinander, soll heißen, ich muss öfters StopChannel() einsetzen. Alle anderen Befehle wie StopChannel, PauseChannel, PlayChannel, etc. funktionieren einwandfrei mit dieser Datei. Nur ChannelPlaying nicht ![]() |
||
![]() |
remaBetreff: Re: ChannelPlaying() |
![]() Antworten mit Zitat ![]() |
---|---|---|
- Heisst die Variabel auch wirklich channel_menu_bgmusic ?
- ist diese auch als TSound deklariert? - vielleicht ist diese Local deklariert statt Global ? Am besten am Anfang des ganzen Quellcodes immer Strict einsetzten.!!! Und abfragen nicht mehr mit IF var=False sondern IF NOT var ... den je nachdem kann dies auch zu Problemen führen... Code: [AUSKLAPPEN] If Not ChannelPlaying(channel_menu_bgmusic) channel_menu_bgmusic = PlaySound(sfx_start) EndIf |
||
![]() |
Klip |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nochmal der ganze Code auf einen Blick:
Code: [AUSKLAPPEN] Global sfx_start:TSound ' menu-music Global channel_menu_bgmusic:TChannel ' channel for it Function MainMenu() DebugLog("entered main menu") FlushKeys() If Not ChannelPlaying(channel_menu_bgmusic) channel_menu_bgmusic = PlaySound(sfx_start) EndIf ... Ergebnis ist immer noch dieselbe Fehlermeldung. Die Variablennamen kommen nicht doppelt vor und die Datei ist geladen (sfx_start). EDIT: Habe es jetzt so gelöst: Nach dem Ladebildschirm spiele ich sfx_start im genannten Channel einmal ab und stoppe den Channel _sofort_ wieder. Dann funktioniert alles ohne Fehlermeldung. Wahrscheinlich muss man einen Channel erst einmal benutzen, bevor alle Befehle funktionieren. Seltsam. Ich danke für jegliche Hilfe : ) |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Global sfx_start:TSound ' menu-music Global channel_menu_bgmusic:TChannel ' channel for it Function MainMenu() DebugLog("entered main menu") FlushKeys() If Not ChannelPlaying(channel_menu_bgmusic) channel_menu_bgmusic = PlaySound(sfx_start) EndIf ... Hm, wenn das der ganze Source ist würde ich ja vorher prüfen ob channel_menu_bgmusic = NULL ist weil ChannelPlaying(NULL) ohne Objekt ja kein Sinn macht . |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group