3

キャンバス 2D コンテキストで行われる関数 drawImage() の呼び出しごとに、いくつかのコードを実行する必要があります。

game.canvas = document.getElementById('canvas');
game.ctx = game.canvas.getContext("2d");

残念ながら、見た目ほど簡単ではありません。

私はこれをやろうとしました:

game.ctx.drawImageOld = game.ctx.drawImage;
game.ctx.drawImage = function(i,x,y,u,v){console.log("ok"); game.ctx.drawImageOld(i,x,y,u,v);}
game.ctx.drawImage(myImage, 10, 10);
// logs "ok" two times on FF

この

CanvasRenderingContext2D.prototype.drawImageOld = CanvasRenderingContext2D.prototype.drawImage;
CanvasRenderingContext2D.prototype.drawImage = function(i,x,y,u,v){console.log("ok"); this.drawImageOld(i,x,y,u,v);}
game.ctx.drawImage(myImage, 10, 10);
// logs "ok" two times

しかし、ネイティブの drawImage は決して実行されません...

どうすればいいですか?関数呼び出しを「検出」する別の方法はありますか?

ありがとう。

4

1 に答える 1