我正在使用App Lab bu code.org,它允许我使用块或其 JavaScript 等效项制作“应用程序”。在这个应用程序中,我应用了如下图所示的运动学方程:
我的程序根据用户输入的时间r
或水平范围以及发射角度(当前未使用)来计算最大高度和水平速度。为此,它操纵四个方程中的第一个来:
v_x = (x - x_0) / t
或者简单地说,水平速度是水平行进的总距离减去初始水平速度(始终为 0)除以时间。对于高度,它只是使用第二个等式。代码:
var time = 1;
var range = 1;
var angle = 0;
var GRAVITY = -32.2;
var v_yo = 0;
var y_o = 0;
setText("time", time);
setText("x_range", range);
setText("launch", angle);
function horizontal_velocity() {
var v_x = ((range - 0)/time * 3600)/5280;
setText("text_area1", v_x.toFixed(5));
}
function maximum_height() {
var height = 0.5 * GRAVITY * Math.pow(time/2, 2) + (v_yo * (time/2)) + y_o;
setText("text_area2", height.toFixed(5));
}
onEvent("timey", "click", function(event) {
setText("time", 0);
});
while (GRAVITY < 0) {
time = getText("time");
range = getText("x_range");
angle = getText("launch");
v_yo = 0 - GRAVITY * (time/2);
horizontal_velocity();
maximum_height();
}
结果工作得很好(在这里测试),但一件事不起作用的是Clear
按钮......现在只是第一个。其余的没有附加任何代码。因此,要“清除”标签下的文本字段Time in Seconds
,您需要单击按钮。这应该触发了onEvent()
代码和调用setText("timey", 0)
,它应该用0
.
不幸的是,在调试期间,它显示当单击按钮时,它甚至没有调用onEvent()
不允许第一个按钮工作的那个。对于那些对做什么感到好奇的onEvent()
人,请查看此文档。那么为什么onEvent()
即使按钮的 idtimey
和第二个参数click
分别对应于正确的按钮和操作,也没有被调用。此外,其中的代码onEvent()
是一个函数,如果您检查文档中的第三个示例,这是合法的。
编辑器还包括一个设计部分: