How do i remove a listener for an event I've previously registered to with the new dart library?
I'm using this to listen for events with the new library:
element.onMouseMove.listen
What is the equivalent version of this?
element.on.mouseMove.remove
element.onMouseMove.listen(...)
returns a StreamSubscription. Simply call its cancel() method to stop receiving events.
In addition to Alexandre's answer, a concrete example in code would look like this:
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);
}
This prints "Moved" when you move the mouse over the "Click Me!" text (from the standard dart sample). When clicked, it stops.