使用ImageElement绘制drawImage

use*_*948 3 dart dart-html

工作:(文档有一个img标签,id ="img"src ="img.png",它有效)

  void test() {
    ImageElement img = query('#img');
    context.drawImage(img, 0, 0);
  }
Run Code Online (Sandbox Code Playgroud)

不工作:

  void test() {
    ImageElement img = new ImageElement(src: 'img.png');
    context.drawImage(img, 0, 0);
  }
Run Code Online (Sandbox Code Playgroud)

那么,为什么我不能在文档中使用'new ImageElement'而不是'query'?

Pix*_*ant 6

问题是,当您调用drawImage时,图像尚未加载(而不是在嵌入页面并在dart代码运行之前加载时).你应该监听onLoad流,只在加载后绘制图像:

  ImageElement img = new ImageElement(src: "img.png");
  img.onLoad.listen((value) => context.drawImage(img, 0, 0));
Run Code Online (Sandbox Code Playgroud)