3

動作中: (ドキュメントには id="img" src="img.png" の img タグがあり、動作します)

  void test() {
    ImageElement img = query('#img');
    context.drawImage(img, 0, 0);
  }

動作しない:

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

では、ドキュメントから「クエリ」の代わりに「新しい ImageElement」を使用できないのはなぜですか?

4

2 に答える 2

6

問題は、drawImage を呼び出すまでに画像が読み込まれていないことです (画像がページに埋め込まれ、dart コードが実行される前に読み込まれる場合とは異なります)。onLoad ストリームをリッスンし、読み込まれた画像のみを描画する必要があります。

  ImageElement img = new ImageElement(src: "img.png");
  img.onLoad.listen((value) => context.drawImage(img, 0, 0));
于 2013-05-24T16:57:11.073 に答える
1

onError、onDone、cancelOnError を参照して、画像のオンロード構文について少し詳しく説明したいと思います...

readFile() {
    ImageElement image = new ImageElement(src: "plant.png");
    document.body.nodes.add(image);
    image.onLoad.listen(onData, onError: onError, onDone: onDone, cancelOnError: true);
  }

  onData(Event e) {
    print("success: ");
  }

  onError(Event e) {
    print("error: $e");
  }

  onDone() {
    print("done");
  }
于 2013-06-01T20:39:05.027 に答える