在 GeoGebra 中,动画功能为数学和科学的动态演示提供了极大的便利。无论是展示函数图像的变化,还是模拟物理现象,动画都能直观地传达复杂的概念。然而,默认的动画控制方式往往无法满足特定的教学需求。为了更灵活地控制动画,我们可以通过 JavaScript 脚本实现一个播放和暂停的按钮。这个按钮在动画静止时显示“开始动画”,点击后启动动画;在动画进行时显示“结束动画”,点击后停止动画。本文将详细介绍如何在 GeoGebra 中创建这样的按钮,使得动画控制更加直观和便捷。
目录
一、动画基础
1. 动画源文件
为了展示动画按钮效果,我们先来取一个摆线动画。
2. 目标效果
(1)效果1:点击开始播放按钮,动画开始播放,点击停止播放按钮,动画暂停播放;
(2)效果2:点击开始播放按钮,动画开始播放,此时按钮显示为暂停播放,点击暂停播放按钮,动画暂停播放,此时按钮显示为开始播放;
二、效果1—多按钮效果实现
我其实不是特别喜欢多按钮,毕竟可以一个按钮实现的功能为什么要分成两个按钮实现呢?但是多按钮也有其好处,比如功能单一,容易理解,且程序耦合性较低,出错后不会出现连锁效应。
1. 寻找关键动画滑动条
关键动画滑动条,简单来说就是直接控制整个动画的那个滑动条,有可能一个项目中有很多个滑动条,但往往只有一个是核心,比如决定动画开始或停止运动。
在我用的这个例子中,t就是关键滑动条,注意这个变量的名字t,接下来我们的脚本将引用这个名字。
2. 创建两个按钮:开始播放、暂停播放
直接在工具栏里拖按钮出来就可以了,注意修改一下按钮名字,但是不用写按钮脚本。
最终的效果如下:
3. 撰写开始播放脚本
右键“开始播放”按钮,找到其脚本输入框,注意选择On Click 和 JavaScript(第五所有的脚本都是基于JavaScript的)
我们来看一下官网的API说明:
这就好理解了,直接写出这么一串代码丢到脚本框里结束战斗(注意,我的进度条命名为slider):
ggbApplet.setAnimating("slider", 1);
ggbApplet.startAnimation();
注意,有时候写完了怎么点击都没有效果,也没有报错,这个时候可以强制刷新一下浏览器(Shift+F5),重新加载代码,然后点击就有效果,要不就是报错,要不就是可以执行了(比如会报这种错误,说您语法有问题,不过我给的代码是没有问题的哈,放心使用)。
4. 撰写结束播放脚本
在结束播放的脚本里添加这么一句话就可以了(官方API里有解释,可以见上边的截图):
ggbApplet.stopAnimation();
三、效果2—单按钮效果实现
1. 关于GeoGebra的调试功能
GeoGebra的调试功能暂时我还没有发掘到,不过在这之前倒是可以使用其他方式来代替,比如使用命令行来进行操作。
若我想在停止播放的按钮脚本下输出一个“hello world”,我就在停止播放的脚本内写上:
ggbApplet.evalCommand(`Text("Hello, Wolrd!")`);
点击停止播放按钮后出现这个(以此类推,后续我们调试就用这种方式进行):
2. 撰写“开始播放”按钮脚本
(1)为了实现单按钮既有播放又有暂停的功能,我们可以使用条件逻辑来判断,同时更改按钮的文字(对于非计算机伙伴来说可能难度有些大,我会放上代码可以直接粘贴,或者有特殊需求欢迎联系)
ggbApplet.setAnimating("slider", 1)
a = ggbApplet.isAnimationRunning();
if (a == true) {
ggbApplet.stopAnimation();
ggbApplet.setCaption("button1", "开始播放");
} else {
ggbApplet.startAnimation()
ggbApplet.setCaption("button1", "停止播放");
}
涉及到代码撰写,不太建议使用GeoGebra自带的编辑器进行编写,可以试试idea,下边是编写过程截图,很方便。
(2)最后看一下运行效果
四、文章最后
若需源文件找客F回复“GB030”就可以了
(若找不到可以直接搜索店铺:“第五设计”)