2011-04-20 41 views
2

使用GWT,我在網頁上顯示圖像,我的目標是讓用戶裁剪它。用戶通過點擊圖像的特定部分,移動鼠標並將其釋放到其他地方來繪製想象的邊界框。通過使用MouseDownHandler()MouseUpHandler(),我計劃記錄鼠標光標的開始和結束角。GWT圖像裁剪與瀏覽器中拖放問題

但是,當我在網絡上部署我的工作時,出現這樣的問題:當用戶單擊圖像並嘗試繪製想象的邊界框時,Web瀏覽器(我的情況是Google Chrome)將其檢測爲拖放操作。

因此,我無法讓我的mouseDown()mouseUp()函數正常工作。我該如何避免瀏覽器進行拖放操作?

代碼:

public void onModuleLoad(){ 
    RootPanel.get().add(img1); 

    img1.addMouseDownHandler(new MouseDownHandler() { 
      @Override 
      public void onMouseDown(MouseDownEvent event) { 
       startX = event.getX(); 
       startY = event.getY(); 
      } 
    }); 

    img1.addMouseUpHandler(new MouseUpHandler() { 
      @Override 
      public void onMouseUp(MouseUpEvent event) { 
       endX = event.getX(); 
       endY = event.getY(); 
       img1.setVisibleRect(startX, startY, endX-startX, endY-startY); 
      } 
    }); 
} 
+1

我認爲這是不可能的。你將不得不爲此尋找另一種解決方法......我今晚看看它。 – 2011-04-20 16:25:05

+2

我在一個完全不相關的例子中找到了解決方案。通過添加語句「event.preventDefault();」在MouseDownHandler和MouseUpHandler中,阻止了拖放機制。感謝那些發佈和幫助的人。 – yunusual 2011-04-21 16:37:14

+0

不錯,你與我們分享這個。不知道你可以阻止它! – 2011-04-21 18:01:05

回答

0

也許你可以使用HTML5。我在這裏發現了this先前的問題,Stack OverFlow描述了同樣的問題。另外,我在code.google.com上找到code example 希望這會使您找到解決方案。