Пользовательский курсор в приложении AIR отображается не полностью

Для приложения, которое я разрабатываю в AIR, я удалил хром через app.xml. Я управляю функциями минимизации, максимизации, закрытия, изменения размера и всеми другими функциями из приложения. У меня проблема с функцией изменения размера. Я определил ручки для изменения размера, а также могу отображать свой собственный курсор, когда мышь перемещается по нему. Проблема в том, что видна только часть этого курсора, которая находится внутри границы приложения, остальная часть изображения курсора скрыта.

Для реализации настраиваемого курсора я делаю следующее.

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

Возможно ли показать полное изображение курсора, даже если он находится за пределами приложения?


person Goje87    schedule 04.10.2010    source источник
comment
+1 за хороший вопрос. У меня такая же ситуация с моим приложением AIR, поэтому я надеюсь, что у кого-то есть хороший ответ ...   -  person Wade Mueller    schedule 04.10.2010


Ответы (1)


Я считаю, что вы можете добавить отступ в несколько пикселей в свой настраиваемый хром сверху, слева, справа и снизу границ системного окна.

P.S: Не забудьте убрать его при увеличении окна.

person Maxim Kachurovskiy    schedule 05.10.2010
comment
Привет, Максим .. Это хорошая идея :) Я много гуглил о предоставлении полей оконному приложению, но не мог найти никакого способа. Было бы очень полезно, если бы вы могли передать ссылку, где я мог бы научиться добавлять поля. Спасибо!! - person Goje87; 08.10.2010
comment
Если вы рисуете собственный заголовок и границы окна, вы можете, например, просто нарисовать их левую границу от (5,5) до (5, height - 10) вместо (0, 0) до (0, height). То же и для других границ. - person Maxim Kachurovskiy; 08.10.2010