我正在使用App Lab bu code.org,这可以让我制作一个" app"使用块或它们的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();
}
结果完全正常(test it here),但有一点不起作用的是Clear
按钮......现在只是第一个。其余的没有附加任何代码。所以要清除&#34;清除&#34;标签Time in Seconds
下的文本字段,您需要单击按钮。这应该会触发代码中的onEvent()
并调用setText("timey", 0)
,该0
应该用onEvent()
替换当前文本。
不幸的是,在调试期间,它显示单击按钮时,它甚至不会调用不允许第一个按钮工作的onEvent()
。对于那些对onEvent()
做什么感到好奇的人,请查看doc。 那么,即使按钮timey
和第二个参数click
的ID分别对应正确的按钮和操作,为什么onEvent()
不会被调用。此外, NameError: name 'latent_dim' is not defined
中的代码是一个函数,如果您检查文档中的第三个示例,这是合法的。
编辑器还包括一个设计部分: