Подумал я и решил вынести это в отдельную тему, чтоб заметнее было ПРАВИЛА НАПИСАНИЯ СКРИПТОВ
1. Скрипты пишутся и читаются (т.е. воспроизводятся программой) построчно. То есть каждая команда занимает ровно одну строку, и не больше.
2. Когда программа прочитала и исполнила все строки скрипта, он автоматически останавливается, если в конце скрипта не указана команда ScriptTimer("Script","time"), где time - число в миллисекундах. Команда сия означает, что надо вновь выполнить данный скрипт через время time. И так скрипт может работать до бесконечности, пока, например, не выйдут с данной страницы или в скрипте не выполнится некое условие, при котором скрипт остановится.
3. Остановить скрипт можно командой Return(), что значит по-русски "возврат". Как только программа встретит эту строку в сценарии, скрипт немедленно остановится.
4. В скрипте можно прописать некое условие, при котором, если оно выполняется, то будет исполнена одна команда или группа команд, а если не выполняется, то будет исполнена другая команда или группа команд. Условие в общем виде выглядит так:
If (здесь пишем условие) Then
**выполняется некая команда
Else
**выполняется другая команда
End
Более конкретный пример условия:
If (a=1) Then
Message("Ну и дурак же ты, Вася!","")
Else
Message("Умница ты, Вася!","")
End
В частности, если условие выполняется, то можно остановить скрипт:
If (a=1) Then
Return()
Else
Message("Продолжаем разговор!","")
End
и тому подобное.
5. В скриптах очень часто используются циклы. Они позволяют произвести сразу целый ряд действий, пока некое число будет изменяться от начального значения до конечного. При этом, пока цикл не дойдет до конечного числа, установленного вами, скрипт дальше не пойдет, пока не выполнить весь цикл. Прервать цикл можно командой Break(). При этом цикл завершится (точнее, остановится), однако скрипт продолжит свою работу дальше, то есть перейдет к выполнению следующей строки скрипта.
В общем виде цикл выглядит так:
For i=1 To 100
**Здесь выполняем какие-либо действия
Next i
Например, можно переместить некий объект с позиции 1 (по координате X) до позиции 100:
For i=1 To 100
MoveObject("Rectangle","i,ObjectY(Rectangle)")
Next i
Или можно вычислить, например, факториал числа 10:
x=1
For i=1 To 10
x=x*i
Next i
или заполнить список (объект SongList) словами "Слово1", "Слово2".. и так до "Слово100":
For i=1 To 100
item$= 'Слово'+CHAR(i)
ListBoxAddItem("SongList","item$")
Next i
или мало ли что там ещё...
Как я уже говорил, цикл можно прервать командой Break(). Например, если число i станет равным некому числу K, то заполнение списка прекращается:
For i=1 To 100
item$= 'Слово'+CHAR(i)
ListBoxAddItem("SongList","item$")
If (i=K) Then
Break()
End
Next i
Вот такие нехитрые "правила" написания скриптов