Sleep Alternative?

04/24/2010 14:25 mipez#1
Irgendjemand (ich glaub nano) hatte mal etwas gepostest um ein Script zu beenden, während es pausiert ist.

Codeschnipsel (den ganzen will ich erst mal nich zeigen):
PHP Code:
Func _play()
For 
$i 0 To _GUICtrlListBox_GetCount($playlist) -1
    $liste 
_GUICtrlListBox_GetText($playlist,$i)
    
$check2 _SoundLength($liste2)
    
_SoundPlay($liste)
    
Sleep($check2)
Next
EndFunc 
Ne Idee?
04/24/2010 14:43 Shadow992#2
Quote:
Originally Posted by mipez View Post
Irgendjemand (ich glaub nano) hatte mal etwas gepostest um ein Script zu beenden, während es pausiert ist.

Codeschnipsel (den ganzen will ich erst mal nich zeigen):
PHP Code:
Func _play()
For 
$i 0 To _GUICtrlListBox_GetCount($playlist) -1
    $liste 
_GUICtrlListBox_GetText($playlist,$i)
    
$check2 _SoundLength($liste2)
    
_SoundPlay($liste)
    
Sleep($check2)
Next
EndFunc 
Ne Idee?
PHP Code:
Func _play()
For 
$i 0 To _GUICtrlListBox_GetCount($playlist) -1
    $liste 
_GUICtrlListBox_GetText($playlist,$i)
    
$check2 _SoundLength($liste2)
    
_SoundPlay($liste)
    
$time=TimerInit()
    do
      if 
CheckExit() =1 then Exit
    
until TimerDiff($time)>=$check2
Next
EndFunc 
04/24/2010 14:46 xWaffeleisen#3
Statt Sleep eine Do...Until Schleife mit Timer verwenden.
Also:
Code:
$Timer = TimerInit()
Do
    Sleep(10)
Until TimerDiff($Timer) >= $check2
ich hoffe mal ich hab das so richtig verstenden wie du das haben willst ;)
04/24/2010 14:52 mipez#4
Quote:
Originally Posted by Shadow992 View Post
PHP Code:
Func _play()
For 
$i 0 To _GUICtrlListBox_GetCount($playlist) -1
    $liste 
_GUICtrlListBox_GetText($playlist,$i)
    
$check2 _SoundLength($liste2)
    
_SoundPlay($liste)
    
$time=TimerInit()
    do
      if 
CheckExit() =1 then Exit
    
until TimerDiff($time)>=$check2
Next
EndFunc 
K, das klappt.
Nur leider hab ich dadurch wieder das Problem mit mehreren Einträgen aus $playlist. Diese werden zeitgleich abgespielt (deswegen auch vorher Sleep).
04/24/2010 15:04 Shadow992#5
Quote:
Originally Posted by mipez View Post
K, das klappt.
Nur leider hab ich dadurch wieder das Problem mit mehreren Einträgen aus $playlist. Diese werden zeitgleich abgespielt (deswegen auch vorher Sleep).
Wo ist das Problem ?
Dann machst du eben mehrere Timer und frägst per IF ab ob das Lied schon fertig ist ...
04/24/2010 15:22 mipez#6
Quote:
Originally Posted by Shadow992 View Post
Wo ist das Problem ?
Dann machst du eben mehrere Timer und frägst per IF ab ob das Lied schon fertig ist ...
_SoundStatus, soweit weiß ich das schon... nur würden daraus gut 2 Dutzend Zeilen (Per IF Abfrage).
Da muss es doch eine bessere Möglichkeit geben Oo
04/24/2010 16:21 Shadow992#7
Quote:
Originally Posted by mipez View Post
_SoundStatus, soweit weiß ich das schon... nur würden daraus gut 2 Dutzend Zeilen (Per IF Abfrage).
Da muss es doch eine bessere Möglichkeit geben Oo
2 dutzend ?
Es ist genau eine If-Abfrage , die du brauchst ...
PHP Code:
global $timer[100]
global 
$LiedZeit[100]
;
Dein Code eben
for $i=0 to Ubound($timer)-1
if $LiedZeit[$i]<$timer[$ithen StartLied($i)
next 
04/24/2010 16:43 mipez#8
Quote:
Originally Posted by Shadow992 View Post
2 dutzend ?
Es ist genau eine If-Abfrage , die du brauchst ...
PHP Code:
global $timer[100]
global 
$LiedZeit[100]
;
Dein Code eben
for $i=0 to Ubound($timer)-1
if $LiedZeit[$i]<$timer[$ithen StartLied($i)
next 
...Arrays -.-
Aber wieso 100? Verstehe ich nich Oo
04/24/2010 17:03 Shadow992#9
Quote:
Originally Posted by mipez View Post
...Arrays -.-
Aber wieso 100? Verstehe ich nich Oo
Ich bin halt mal davon ausgegangen , dass du 100 Lieder hast , du kannst natürlich auch genauso gut 10 oder 100000 oder 478386789 nehmen ...

Btw. Falls du Arrays noch nicht richtig verinnerlicht hast , vielleicht hilft dir das :
[Only registered and activated users can see links. Click Here To Register...]
04/24/2010 21:07 mipez#10
Quote:
Originally Posted by Shadow992 View Post
Ich bin halt mal davon ausgegangen , dass du 100 Lieder hast , du kannst natürlich auch genauso gut 10 oder 100000 oder 478386789 nehmen ...

Btw. Falls du Arrays noch nicht richtig verinnerlicht hast , vielleicht hilft dir das :
[Only registered and activated users can see links. Click Here To Register...]
Nee Arrays verstehe ich an sich... nur kann ich die nich leiden xD

Hm... Sagen wir ich will unendlich Lieder eintragen... ich kenn aus anderen Sprachen -1, aber 9999 reicht glaube aus :awesome:


EDIT: Irgendwas is da falsch, es spielt nur das 1. Lied >_< (1 _SoundPlay zu viel glaube):
PHP Code:
global $timer[9999]
global 
$LiedZeit[9999]
Func _play()
For 
$i 0 To _GUICtrlListBox_GetCount($playlist) -1
    $liste 
_GUICtrlListBox_GetText($playlist,$i)
    
_SoundPlay($liste)
for 
$i=0 to Ubound($timer)-1
if $LiedZeit[$i]<$timer[$ithen _SoundPlay($i
Next
Next
EndFunc