私は組み込みの Rhino Interpreter in Blue (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())