0

たくさんの小さな画像をつなぎ合わせて 1 つの大きな画像を形成するキャンバスを作成しました。

ロードされた1つの単一の画像オブジェクトであるイベントをリッスンするように作成し、それをキャンバスに描画します。イベントを再度トリガーする次の画像をロードした後、ユーザーが指定した番号でこの再帰を停止します。

ユーザーが指定した数に達した後、画像オブジェクトの「ロード」イベントのリッスンを停止したいのですが、画像オブジェクト (「img」) がイベント「ロード」のリッスンを停止するにはどうすればよいですか?

// ここでデバッグ

ウェブページ : https://dl.dropbox.com/u/2321732/stitch_images/index.html

Javascript : https://dl.dropbox.com/u/2321732/stitch_images/script/main.js

//便利な編集用

JSBin : http://jsbin.com/acakif/1/

注:イベントがまだ進行中であることをどのように知っていますか

1. Web インスペクタ、JavaScript コンソールに移動します。

2. img.src = "https://dl.dropbox.com/u/2321732/stitch_images/images/0_3.jpg"

3.「何かがロードされました」をログに記録しないでください

4

1 に答える 1

5

あなたのコードで私は見る:

img.addEventListener("load", drawStitch, true);

ただし、次のようにリスナーを削除します。

img.removeEventListener("load", drawStitch);

簡単に言うと、リスナーを削除したい場合は、に渡したすべての引数をに渡す必要がありaddEventListenerますremoveEventListener

したがって、あなたの例では、次のようなものです。

img.removeEventListener("load", drawStitch, true);

Firefox / Firebugでテストしましたが、step.2でイベントが発生しなくなりました:)

于 2013-01-02T19:18:35.657 に答える