脚本

脚本是一系列依次执行的命令。

GeoGebra 支持两种脚本语言——GGBScript 和 Javascript。您可以在 脚本 标签页 的 Menu-options.svg 属性对话框 中为对象分配脚本。

属性 面板需要关闭才能使脚本正常工作。

不同的对象支持不同类型的脚本;脚本的执行可以通过以下方式触发:

  • 点击特定对象( OnClick 标签页)

  • 更新特定对象(当对象的值或属性发生更改时)( OnUpdate 标签页)

  • 更改输入框的内容( OnChange 标签页)

  • 拖动对象后释放鼠标按钮(或对于触摸设备,将手指从屏幕上移开)时 ( On Drag-end 标签页)

  • 加载文件(对于 JavaScript - 全局 JavaScript 标签页)

  • Javascript 监听器(参见 GeoGebra_Apps_API )

... 与 OnUpdate OnChange 输入框脚本的区别在于,如果脚本输入在 OnUpdate 标签页中,它仅在输入框失去焦点时执行(例如通过点击按钮、点击 图形视图 等),而在 OnChange 标签页 中输入的脚本将在输入框内容 发生变化时立即执行,且焦点仍停留在输入框本身。

GGBScript

您可以创建由 GeoGebra 命令组成的脚本,就像在 输入栏 。 触发脚本后,每条命令都会按照编写的顺序依次执行。

  • a 是一个整数值 滑动条 范围从 1 到 3(因此增量等于 1)

  • 输入: list1 = {"red", "green", "blue"}

  • 在 的属性中 a ,将“更新时”脚本设置为 SetColor(a, Element(list1, a))

  • 通过拖动滑动条可以改变其颜色

解释: 每次拖动滑动条时,都会发生一次更新。因此,每次拖动都会调用脚本,并且 的值 a 用于从列表中获取一种颜色并改变滑动条 的颜色 a .

您可以使用 # 来开始注释

Note 提示: 某些命令只能用于脚本编写。这些命令的 列表可在 脚本命令 页面中找到。

JavaScript

JavaScript 是一种被许多互联网技术使用的编程语言。与 GeoGebra 脚本不同,在 JavaScript 中,命令 不必作为简单的序列执行,而是可以使用控制流( if , while , for )。 对于 通用的 JavaScript,您可以在以下网址找到很好的教程: developer.mozilla.org 。在 GeoGebra 中,您可以使用特殊的 JavaScript 方法来更改构造。这些方法属于 ggbApplet 对象,这意味着您通过 来调用它们 ggbApplet.method_name(parameter,..,parameter) 。有关这些方法的完整列表,请参见 GeoGebra 应用 API .

for(var i =0;i<10;i++)
   ggbApplet.evalCommand("A_"+i+"=(random()*10,random()*10)");

此脚本创建 10 个点 A 0 A 9 ,具有随机坐标。

使用 JavaScript 编写脚本非常灵活,但许多任务也可以使用更简单的 GeoGebra 脚本来完成。

全局 JavaScript

全局 JavaScript 部分,位于 脚本 选项卡中的 Menu-options.svg 属性对话框 您可以定义 函数 (非变量),这些函数可在其他脚本中使用。您还可以定义函数 ggbOnInit(name, api) ,该函数在构造加载完成后会自动调用。 ggbOnInit 函数可用于注册一些 监听器 ,如下所示。

function onAdd(name){
    alert("Object "+name+" was added.");
}

function ggbOnInit(name, api){
    api.registerAddListener("onAdd");
}

首先我们定义了函数 onAdd ,该函数接收一个字符串并根据该字符串显示一条消息。之后,使用 ggbOnInit 函数,我们让 GeoGebra 在每次添加新对象时调用此函数。一旦我们重新加载构造,函数 ggbOnInit 将被调用,此后,当用户添加一个名为例如 A ,将显示消息“对象 A 已添加”。

您还可以使用 监听器 来执行重命名、删除和清除构造等操作。完整列表可在以下位置找到: GeoGebra_Apps_API .

全局 JavaScript 中在 ggbOnInit 之外使用任何 ggbApplet 方法将无法按预期工作,因为它们会在构造加载之前被调用。