我正在使用 Blue 中的嵌入式 Rhino Interpreter(Csound 的音乐创作环境)来生成“乐谱”(乐谱)。在蓝色中,您可以通过编写一个函数然后执行此操作
score = myFunction()
我的函数使用 onLoad 获取图像并提取像素信息,这些信息将用于生成分数。问题是我的函数没有足够的时间加载图像并在将数据分配给变量之前返回数据。我试过使用 setTimeout() 但这没有帮助。
我在浏览器中试过这个,它确实返回“未定义”。
基本上我需要一种延迟分配给分数变量的方法。这可能吗?
谢谢
function score(){
var img = new Image();
img.src = "http://static.webshopapp.com/shops/023001/files/024718445/256x256x2/major-dog-barbell-mini.jpg";
img.crossOrigin = "Anonymous";
var score = "abc";
img.onload = function(){
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
var imgData=ctx.getImageData(0,0,canvas.width,canvas.height);
score = "i1 0 2 440 0.5\n"
for (var i=0;i<imgData.data.length;i+=4){
score += "i1 + 0.1 " + (imgData.data[i] + 500).toString() + " 0.5\n"
}
return score;
}
}
score = score();
// TRY THIS IN BROWSER - RETURNS UNDEFINED
//console.log(score())