8

以前に新しい dart ライブラリに登録したイベントのリスナーを削除するにはどうすればよいですか?

これを使用して、新しいライブラリでイベントをリッスンしています。

element.onMouseMove.listen

これと同等のバージョンは何ですか?

element.on.mouseMove.remove
4

2 に答える 2

18

element.onMouseMove.listen(...)StreamSubscriptionを返します。そのcancel()メソッドを呼び出すだけで、イベントの受信を停止できます。

于 2013-01-23T10:05:07.513 に答える
16

アレクサンドルの答えに加えて、コードの具体的な例は次のようになります。

import 'dart:html';

void main() {
  var listener = (e) => print("Moved");

  var element = query("#text");
  var streamsub = element.onMouseMove.listen(listener); // <--- add the listener

  var reverseText= (Event event) {
    var text = query("#text").text;
    var buffer = new StringBuffer();
    for (int i = text.length - 1; i >= 0; i--) {
      buffer.add(text[i]);
    }
    query("#text").text = buffer.toString();

    streamsub.cancel(); // <----   stop listening
  };

  element
    ..text = "Click me!"
    ..onClick.listen(reverseText);    
}

「Click Me!」の上にマウスを移動すると、「Moved」と出力されます。テキスト (標準ダーツ サンプルから)。クリックすると止まります。

于 2013-01-23T10:14:51.783 に答える