2012-04-17 22 views
6

Soy nuevo en DART. Leí la descripción general del lenguaje y verifiqué el código de ejemplo en el editor de DART. Hasta ahora no he podido encontrar cómo manejar eventos en DART. Por ej. onclick = "call_dart_method()".Gestionar eventos en DART

¿Cómo podemos manejar los eventos en DART?

+0

http://www.dartlang.org/articles/improving-the-dom/ desplácese hacia abajo para ver los eventos. – jonathanKingston

Respuesta

4

no es así como lo haces en Dardo Marque aquí, en la sección Eventos: http://www.dartlang.org/articles/improving-the-dom/

elem.onClick.listen(
    (event) => print('click!')); 
+0

La respuesta debe actualizarse para la última versión del dardo –

+0

Actualicé el awnser a la última versión del dardo – Fox32

4

Además, puede encontrarse con que poder opcionalmente declarar nuestros tipos de variables hace que trabajar con eventos en DART felicidad.

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(); 
} 
+0

¿En qué línea (s) están los moldes? – devdanke

+0

Buen punto: debería haber dicho la configuración de tipos. Creo que originalmente tenía 'var pantalla' y luego' (pantalla como CanvasRenderingContext2D) .. etc.' en mente. –