脚本
脚本是一系列依次执行的命令。
GeoGebra 支持两种脚本语言——GGBScript 和 Javascript。您可以在
脚本
标签页
的
属性对话框
中为对象分配脚本。
|
此 属性 面板需要关闭才能使脚本正常工作。 |
不同的对象支持不同类型的脚本;脚本的执行可以通过以下方式触发:
-
点击特定对象( 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 .
|
您可以使用
|
|
|
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
部分,位于
脚本
选项卡中的
属性对话框
您可以定义
函数
(非变量),这些函数可在其他脚本中使用。您还可以定义函数
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 方法将无法按预期工作,因为它们会在构造加载之前被调用。 |