Как сделать скин или изменить курсор по умолчанию в Flex? - PullRequest
1 голос
/ 19 августа 2009

Как создать или изменить другим способом курсор по умолчанию (белая стрелка), отображаемый в приложении Flex?

Ответы [ 3 ]

1 голос
/ 19 августа 2009

Да, это возможно. Вам потребуется кредитное плечо mx.managers.CursorManager.

Нет способа заменить изображение курсора, но вы достигнете этого, добавив новый курсор в менеджер с высоким приоритетом:

 CursorManager.setCursor(myCursor, CursorManagerPriority.HIGH);

В приведенном выше примере myCursor может быть изображением JPEG, GIF, PNG или SVG, объектом Sprite или SWF-файлом. Кроме того, setCursor принимает два дополнительных параметра, xOffset:Number = 0, yOffset:Number = 0, которые вы можете использовать для смещения изображения от фактической позиции указателя, если вам нужно.

Re: Ваш комментарий:

Я верю, что вы правы. Я не знаю, как переопределить курсор мыши над компонентами, кроме какого-либо события foo. Имейте в виду, что это последний добавленный курсор с наивысшим приоритетом (конечно, для `CursorMangager), который отображается.

0 голосов
/ 20 августа 2009

Если вы хотите изменить курсор, вам нужно проверить мышь, когда она в данный момент находится над подобъектом TextField элемента управления Flex TextInput:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768" mouseMove="application1_mouseMoveHandler(event)">

    <fx:Script>
        <![CDATA[

            protected function application1_mouseMoveHandler(event:MouseEvent):void
            {
                if(event.target is TextField)
                {
                    if(TextField(event.target).type == TextFieldType.INPUT)
                    {
                        Mouse.hide();
                    }
                }
                else
                {
                    Mouse.show();
                }
            }

        ]]>
    </fx:Script>

    <mx:TextInput width="300" />
</s:Application>

Это просто заставляет его уйти, но вы можете использовать возможность сделать курсор как угодно, заменив Mouse.hide () методами CursorManager, описанными в других комментариях. Я не считаю это событие «обманом», и переопределение класса PlayerGlobals.swc всегда будет сложнее, чем открытый материал Flex SDK.

0 голосов
/ 20 августа 2009
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...