2013-07-29 75 views

回答

5

实际上,this answer to the same question for JS几乎直接适用。飞镖翻译可能看起来像:

import 'dart:html'; 

void main() { 
    var can = new CanvasElement() 
    ..width = 600 
    ..height = 600 
    ; 

    var con = can.getContext('2d'); 

    document.onPaste.listen((e) { 
    var blob = e.clipboardData.items[0].getAsFile(); 
    var reader = new FileReader(); 
    reader.onLoad.listen((e) { 
     var img = new ImageElement() 
     ..src = (e.target as FileReader).result; 
     img.onLoad.listen((_) { 
     con.drawImage(img, 0, 0); 
     }); 
    }); 
    reader.readAsDataUrl(blob); 
    }); 

    document.body.children.add(can); 
} 
+1

在DART的最新版本(0.7.3_r27487),此代码不能正常工作......看来这个项目(_)方法已经从DataTransferItemList删除类... –

+0

我无法设法生成粘贴事件。我尝试了一个断点,但它并没有停止,所以我想我错过了一些东西。 – maugch

+1

更新:从Dart 1.1.1开始,DataTransferItemList类更类似于其他列表 - 而不是使用e.clipboardData.items.item(index),我们可以简单地使用e.clipBoardData.items [index](这更有意义);编辑上述代码以反映这一变化并且正在工作。 –

相关问题