7

我是飞镖的新手。我阅读了语言概述并检查了 DART 编辑器中的示例代码。到目前为止,我找不到如何处理 DART 中的事件。例如onclick="call_dart_method()"

我们如何处理 DART 中的事件?

4

2 回答 2

5

这不是你在 Dart Check 上的做法,在事件部分下: http ://www.dartlang.org/articles/improving-the-dom/

elem.onClick.listen(
    (event) => print('click!'));
于 2012-04-17T22:50:27.457 回答
4

此外,您可能会发现能够选择性地声明我们的变量类型使得在 Dart bliss 中处理事件。

import 'dart:html';
import 'dart:math';

class MyApplication {
  MyApplication() {
    CanvasElement screenCanvas;
    CanvasRenderingContext2D screen;
    final int WIDTH = 400, HEIGHT = 300;

    Random rand = new Random();
    screenCanvas = new CanvasElement();
    screenCanvas
      ..width = WIDTH
      ..height = HEIGHT
      ..style.border = 'solid black 1px';

    screen = screenCanvas.getContext('2d');
    document.body.nodes.add(screenCanvas);
    screenCanvas.onClick.listen((MouseEvent me) {
      int
          r = rand.nextInt(256),
          g = rand.nextInt(256),
          b = rand.nextInt(256);
      double a = rand.nextDouble();
      screen
        ..save()
        ..translate(me.offsetX, me.offsetY)
        ..rotate(rand.nextDouble() * PI)
        ..fillStyle = 'rgba($r,$g,$b,$a)'
        ..fillRect(-25, -25, 50, 50)
        ..restore();
    });
  }
}

void main() {
  new MyApplication();
}
于 2012-06-14T16:40:12.617 回答