前面我们学习怎么样打开窗口来创建脚本,接着下来就需要知道这些脚本是做什么用的,这样最终才会按它的语义来正确地执行起来。
现在我们能够查看脚本的内容:
default {
state_entry() { llSay(0, “Hello, Avatar!”); }
touch_start(integer total_number) { llSay(0, “Touched.”); } }
|
如果您编写过程序, 你会觉得很熟悉其中的几个关键字,下面我来逐字分析。关键字default的作用是指示LSL程序从这里开始执行。 接下来的内容, 你将会了解到LSL程序可有多个状态,而现在你只需要知道每一个LSL程序至少需要一个状态default。
每对花括号{和}都缺省封装了事件处理器 — 在上面实例中是state_entry和touch_star。 当程序执行到这里的时候,state_entry事件被触发。 所以在我们提供的实例中, 当你点击保存, 然后脚本被上传到模拟器程序中, 而且脚本被附加到目标物体上。 LSL程序当执行到default的时候。 这将会触发state_entry事件, 然后任何位于state_entry中的代码都将被执行。
在上面的的实例中, 唯一的代码是库函数LLSay。 LLSay允许一个脚本发送聊天文本。 比如类似一个虚拟化身进入到一个既定的通道(Channel)中。 Channel 0表示所有的虚拟化身都能听到发送出的信息,所以当在channel 0说“Hello, Avatar!”, 脚本将会确保附近的所有虚拟化身都能够听到。 LLSay位于左花括号后边,内容包括整数0和字符串“Hello, Avatar”。
第二个事件处理器是touch_start。当我们点击盒子的时候开始调用touch_start。 然后你会收到一个回响信息“Touched(已触摸)”, 这就是touch_start事件处理器的工作。 touch_start事件处理器中的唯一代码是llSay库函数, 刚才我们已经介绍过了。
在这个脚本例子里使用的函数
llSay
是内部库函数,也就是第二人生自己定好这个函数的功能是做什么用的。在后面的解释执行这个脚本时,就会按照设定的内容来运行。不过,要执行一个脚本,要经历许多步骤:词法分析、语法分析、语义分析、生成中间代码、执行中间代码。