gpt4 book ai didi

javascript - MaxMSP 的 javascript 中的 setTimeout 问题

转载 作者:行者123 更新时间:2023-11-30 11:40:04 26 4
gpt4 key购买 nike

我已经看了很多其他问题,但我似乎无法用 setTimeout 解决这个问题

所以我一直在努力解决这个问题,但由于某种原因 setTimeout 不起作用,有什么提示吗?

function curves(val_name, mini, maxi, t_amount, steps) {
//t_amount MUST be in ms
for (x = 0; x < steps; x++) {
var x_mod = scale(x, -6, 0, 0, steps);
var value = setTimeout(calculate_curve, (t_amount / steps), x_mod);

switch (val_name) {
case "vol_stretch1":
var vol_stretch1 = this.patcher.getnamed("stretching").subpatcher(0).getnamed("vol_stretch1");
vol_stretch1 = value
break;
case "vol_stretch2":
var vol_stretch2 = this.patcher.getnamed("stretching").subpatcher(0).getnamed("vol_stretch2");
vol_stretch2 = value
break;
case "vol_stretch3":
var vol_stretch3 = this.patcher.getnamed("stretching").subpatcher(0).getnamed("vol_stretch3");
vol_stretch3 = value
break;
}
}
}

function calculate_curve(x) {
var constant_e = 2.718281828459;
var result = (1 / 1 + (constant_e ^ (x * -1))) * -1; //sigmoid function * -1 to have the nice rise
}

function scale(unscaledNum, minAllowed, maxAllowed, minimum, maximum) {
return (maxAllowed - minAllowed) * (unscaledNum - minimum) / (maximum - minimum) + minAllowed;
}

您可以忽略该开关,因为它与 MaxMSP 的扩展一起使用,但在这里不是很重要。我得到的错误是“Javascript ReferenceError: setTimeout is not defined”。非常感谢任何帮助!

最佳答案

我以前没有使用过 Max,但从少量搜索来看,您似乎是在按照插件的方式编写一些东西。

看起来 Max 正在运行它自己的某种 Javascript 环境。 setTimeout 是 Javascript 浏览器的 window 对象上的一种方法,因此它不一定像 Max 那样在浏览器之外的 Javascript 中实现。

推荐的替代方法似乎是使用环境公开的任务对象,这里有一些文档: https://docs.cycling74.com/max5/vignettes/js/jstaskobject.html

我无法对此进行测试,但从文档来看,它看起来像下面的内容应该有效:

var task = new Task(function() {
calculate_curve(x_mod);
}, this);
task.schedule((t_amount / steps));

关于javascript - MaxMSP 的 javascript 中的 setTimeout 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43068067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com