2010-10-04 72 views
1

對於我在AIR中開發的應用程序,我已通過app.xml刪除了該chrome。我正在管理應用程序內最小化,最大化,關閉,調整大小和所有其他功能的功能。我正面臨調整大小功能的問題。我已經定義了調整大小的手柄,並且當鼠標移過它時我也能夠顯示我的自定義光標。問題是隻有該遊標的一部分可見,位於應用程序的邊界內,其餘的遊標圖像被隱藏。AIR應用中的自定義光標未完全顯示

爲了實現自定義光標,我做了以下操作。

  1. 嵌入光標圖像。
 
    [Embed(source='/resources/images/resize_right.png')] 
    public var resizeRight:Class; 
  1. 事件偵聽器添加到作爲一個握在畫布上。
 
    rightResizeGrip.addEventListener(MouseEvent.MOUSE_OVER, function(e) 
    { 
     setResizeCursor(CURSOR_RIGHT); 
    }); 
    rightResizeGrip.addEventListener(MouseEvent.MOUSE_OUT, function(e) 
    { 
     unsetResizeCursor(); 
    }); 
  1. 在setResizeCursor
 
    private function setResizeCursor(type:String) 
{ 
    var cursorClass; 
    var xOffset; 
    var yOffset; 

    switch(type) 
    { 
     case CURSOR_RIGHT: 
      cursorClass = resizeRight; 
      xOffset = -14; 
      yOffset = -10; 
      break; 
     case CURSOR_LEFT: 
      cursorClass = resizeLeft; 
      xOffset = 0; 
      yOffset = -10; 
      break; 
     case CURSOR_RIGHT_TOP: 
      cursorClass = resizeRightTop; 
      xOffset = -20; 
      yOffset = 0; 
      break; 
     case CURSOR_RIGHT_BOTTOM: 
      cursorClass = resizeRightBottom; 
      xOffset = -20; 
      yOffset = -20; 
      break; 
     case CURSOR_BOTTOM: 
      cursorClass = resizeBottom; 
      xOffset = -10; 
      yOffset = -14; 
      break; 
     case CURSOR_LEFT_BOTTOM: 
      cursorClass = resizeLeftBottom; 
      xOffset = 0; 
      yOffset = -20; 
      break; 
     case CURSOR_LEFT_TOP: 
      cursorClass = resizeleftTop; 
      xOffset = 0; 
      yOffset = 0; 
      break; 
    } 

    if(cursorClass) 
     CursorManager.setCursor(cursorClass, CursorManagerPriority.HIGH, xOffset, yOffset); 
} 

是否有可能有光標的完整的圖像顯示,雖然它位於應用程序邊界之外?

+0

+1爲好問題。我與我的AIR應用程序處於相同的狀況,所以我希望有人有一個很好的答案... – 2010-10-04 18:03:50

回答

0

我相信你可以在系統窗口邊界的頂部,左側,右側和底部的自定義鑲邊中添加幾個像素的邊距。

P.S:不要忘記把它刪除窗口最大化。

+0

嘿馬克西姆..這是一個好主意:)我已經搜索了很多關於給窗口應用程序的利潤,但找不到任何方式。如果你能傳遞一個鏈接,我可以學習如何增加利潤率,那將會非常有幫助。謝謝!! – Goje87 2010-10-08 08:33:45

+0

如果你正在繪製自定義的窗口標題和邊框,你可以例如將它們從((5,5)]到((5,height - 10)'而不是'(0,0)')的左邊框繪製到(0 ,高度)'。其他邊界也一樣。 – 2010-10-08 10:32:56