Hmmm... I never use the PersistStorage (don't like it...). However I maked something... It works nearly as you want.
First of all you need rename the "Mouse away" state to "silent" add one more state "sound" into the Marvin. Then:
1. Copy the "marvin.ani.PNG" from "silent" to "sound" and apply the same animation.
2. Remove the "marvin6.wav" file from the "silent" state and paste it to the "sound" state.
3. Create new text object "test" on the desktop.
Paste this code into the Marvin:
Dim lborder,rborder
'Called when the script is executed
Sub Object_OnScriptEnter
lborder = -1
rborder = -1
Object.state = "silent"
Object.PersistStorage("soundNUM") = 0
object.left = System.VscreenLeft - Object.width * 2
Object.SetTimer 1, 25
Object.SetTimer 2, 60000
End Sub
'Called when the script is terminated
Sub Object_OnTimer1
lborder = Object.right - System.VscreenLeft
rborder = System.ScreenWidth - Object.right
If lborder = 0 Then
Object.state = "sound"
Object.PersistStorage("soundNUM") = 6
Object.Sound = "marvin" & Object.PersistStorage("soundNUM") & ".wav"
End If
If rborder = 0 Then
Object.PersistStorage("soundNUM") = 7
Object.Sound = "marvin" & Object.PersistStorage("soundNUM") & ".wav"
'Object.state = "silent"
End If
'
desktopx.object("test").text = "left="&lborder&vblf&"right="&rborder&vblf&"sound="&Object.PersistStorage("soundNUM") & ".wav"
Object.Left = Object.Left + 1
If Object.Left > System.ScreenWidth Then Object.Left = System.VscreenLeft - Object.width * 2'- Object.Width
End Sub
Sub Object_OnTimer2
ChangeSound
End Sub
Sub Object_OnMouseEnter
ChangeSound
End Sub
Sub ChangeSound
Object.ToolTipText = "Playing marvin" & Object.PersistStorage("soundNUM") & ".wav"
Object.Sound = "marvin" & Object.PersistStorage("soundNUM") & ".wav"
Object.PersistStorage("soundNUM") = Object.PersistStorage("soundNUM") + 1
If Object.PersistStorage("soundNUM") > 16 Then Object.PersistStorage("soundNUM") = 1
End Sub
Now you may continue your experiments.
Best Regards.