flot ライブラリを使用して、PNG 画像がポイントとしてレンダリングされるプロットをレンダリングしています。動作していますが、各 PNG 画像は 3 回レンダリングされているようです。これは更新時に表示されます (オーバーラップは完全ではありません)。また、画像の onload 関数をログに記録すると、Firebug は、グラフィックごとに 3 回呼び出されていることを通知します。画像をレンダリングする関数は次のとおりです (counter はログ変数です)。
function generateImageFunction (image) {
return function getImage(ctx, x, y, radius, shadow) {
var img = new Image();
img.onload = function() {
console.log(counter++);
ctx.drawImage(img, x, y, img.width, img.height);
}
img.src = image;
}
}
データには 13 個の系列があります。これらは例として最初の 2 個です。
var data = [
{
data: [[1, 1]],
points: { symbol: generateImageFunction("face-angel.png") }
}
{
data: [[2, 2]],
points: { symbol: generateImageFunction("face-angry.png") }
}
];
私のオプションは次のとおりです。
var options = {
series: {
points: { show: true },
},
xaxis: { min: 0, max: 15},
yaxis: { show: false, min: 0, max: 15 },
selection: { mode: "x" }
};
そして、私はします$.plot($("#placeholder"), data, options);
13 個のデータ シリーズでは、最初にページをロードしたときにカウンター変数が 39 になります。データ ポイントが 1 つしかない領域を拡大すると、カウンターが 3 増加します。なぜこれが起こっているのか、またはさらに調査するにはどうすればよいでしょうか?