qb45advr.hlp (Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
@L813e
:nON PLAY(n) Statement Programming Example
  QuickSCREEN      Details     Example      Contents      Index
──────────────────────────────────────────────────────────────────────────────
ON PLAY(n) Statement Programming Example
 
Here is a program that plays continuous music by calling an event-handling
subroutine when the music buffer goes from three to two notes:
 
'  Call subroutine Background when the music buffer goes from
'  3 to 2 notes.
ON PLAY(3) GOSUB Background
'  Turn on event trapping for PLAY.
PLAY ON
 
'  Define a string containing the melody.
Lizzie$ = "o3 L8 E D+ E D+ E o2 B o3 D C L2 o2 A"
'  Play the melody for the first time.
PLAY "MB X" + VARPTR$(Lizzie$)
 
'  Continue until a key is pressed.
LOCATE 2, 1 : PRINT "Press any key to stop.";
DO WHILE INKEY$ = ""
LOOP
END
 
' PLAY event-handling subroutine.
Background:
   ' Increment and print a counter each time.
   Count% = Count% + 1
   LOCATE 1, 1 : PRINT "Background called "; Count%; "time(s)";
   ' Execute another PLAY to fill the buffer.
   PLAY "MB X" + VARPTR$(Lizzie$)
RETURN