2012-07-22 9 views
7

ダーツ言語とHTML5キャンバスの要素を試していますが、私は1つの問題で取り残されています。ダーツでイメージを読み込む方法がわかりません。私はCanvasRenderingContext2Dを取得することができ、これでfillText()とfillRect()を呼び出すことができ、すべて動作しますが、イメージをロードしてdrawImageで描画する方法を理解しようとしています。ダートで画像を読み込む方法

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"); 
    } 

答えて

10

それは

context.drawImage(image, destX, destY); 
+0

こんにちは、私はダーツする新たなんだと私はimage.on.load.add機能を試してみたとき、私は「負荷」はのメンバーではないというエラーを取得しますイベント。また、コードヒントはあまり役に立ちません。私はDart Editorのバージョン0.4.2_r20259とDart SDKのバージョン0.4.2.8_r20259を使用しています。 –

+1

[ダーツのニュースとアップデート](http://news.dartlang.org/2013/01/new-dom-event-streams-api.html) 。今度は "image.on.load.add"は "image.onLoad.listen"と書かれています。 –

+0

DartのM1がリリースされたため、構文が変更され、ファイル名(新しいImageElement(src: "my_image.png");)の前に "src:"を追加すると、ランタイムエラーが発生します。 – daftspaniel

9

新しい画像のonload構文をロードされた後、キャンバス上で上記画像を描画した画像

ImageElement image = new ImageElement(src: "my_image.png"); 
image.onLoad.listen((e) { 
    // Draw once the image is loaded 
}); 

を作成し、ロード多分これは誰かを助けることができるかもしれない。それを行うための別の方法がまだあります:

void main() { 
    ImageElement image = new ImageElement(src: "pic.png"); 
    img.onLoad.listen(onData); 
    img.onError.listen(onError); 
} 

void onData(Event e) { 
    print("Load success"); 
} 

void onError(Event e) { 
    print("Error: $e"); 
} 
1

が、私はこの質問を知っている:

関連する問題