公式:http://code.google.com/p/google-web-toolkit-incubator/ GWTの新しいバージョンに追加される機能が開発されています。 CanvasやWidgetなどがあります。 Google Groupに投稿された、GWT Incubator Status Update and Scheduleによると HTML5のCanvasが使用可能です。 画像はImageLoaderを使って読み込みます。 ClientBundleを使う場合は、ImageResourceのgetUrl()でURLを取得してloadします。 細かい癖などは、このページでもコメントされています。 画像を使う画像が読み込まれるまでは画像は表示できませんので、ImageLoaderクラスのloadImagesを使ってImageElementを作成するのがいいみたいです。 try{ ImageLoader.loadImages(new String[]{goalUrl,startUrl}, new ImageLoader.CallBack() { @Override public void onImagesLoaded(ImageElement[] imageElements) { //copy somewhere } });}catch(Exception e){ e.printStackTrace(); } IEでのCanvasIEにはCanvasがないため、VMLで代価しています。そのため遅いのと描画が変な所が多少あります。 IE9ではSVGをサポートするみたいですし、多少改善が期待できます。 Google Chrome Frameを使ってもらうのもいいでしょう。 HTML宣言htmlの先頭が<!doctype html> だとうまく動かないことがあります。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> とかにするといいでしょう。 ImageResourceimageResourceがIEのCanvasだとうまく分割されずに表示されないことがあります。 普通のURLを使うといいでしょう。 イベントの処理Canvasでマウスクリックなどのイベントを取得場合は、Nativeのイベントを拾うaddDomHandlerでイベントを取得します。 addDomHandler(new MouseUpHandler(){ public void onMouseUp(MouseUpEvent e){ //do something } }, MouseUpEvent.getType()); 私はEventを取得するクラスを作って処理しています。 |
GWT >