2015-02-08 46 views
0

我在主機html頁面去,並把畫架的js的工作原理與HTML文檔中的畫布,但,當我把畫布在我的GWT HTML控件的HTML控件它不工作

這是行不通的
<canvas id="canvas" width="200" height="200"> 
     alternate content 
    </canvas> 

然後我在JSNI方法去,並把

$wnd.$('#canvas').ready(function() { 
    console.log('ds'); 
    $wnd.stage = new $wnd.createjs.Stage("canvas"); 
    $wnd.stage.addChild(new $wnd.createjs.Shape()).set({x:100,y:100}).graphics.f("red").dc(0,0,50); 
    $wnd.stage.update(); 
}); 

它的工作。但隨後我將剪貼元素從html主頁中剪切並粘貼到我的GWT代碼中的HTML小部件中。它沒有工作。它沒有給我一個錯誤。它根本沒有做任何事情。

我試着傳入元素,但document.getElementById()沒有工作。爲什麼它不工作? UiBinder中的東西是不是文檔的一部分?

回答

2

我不會使用getElementById()。這是應該工作的。在UI粘合劑:

<g:HTMLPanel> 
    <canvas ui:field="canvas" width="200" height="200"> 
     alternate content 
    </canvas> 
</g:HTMLPanel> 

在你的Java視圖類:

import static com.google.gwt.query.client.GQuery.$; 

@UiField 
Element canvas; 

canvas到您的JSNI功能。它應該將畫布對象傳遞給EaselJs。

+0

我這樣做,它的工作。唯一的區別是我用畫布周圍的GWT的Canvas包裝,而不是實際的html元素。像你一樣。 – jgleoj23 2015-02-08 04:57:12

+0

那麼你可以做到這一點。 – confile 2015-02-08 04:57:53