如何在Flex中修改或更改默认光标?

时间:2009-08-19 16:48:18

标签: flex cursor

如何修改或更改Flex应用程序中显示的默认光标(白色箭头)?

3 个答案:

答案 0 :(得分:1)

是的,这是可能的。您需要利用mx.managers.CursorManager

无法替换光标图形,但您可以通过向管理器添加具有高优先级的新光标来实现此目的:

 CursorManager.setCursor(myCursor, CursorManagerPriority.HIGH);

在上面的示例中,myCursor可以是JPEG,GIF,PNG或SVG图像,Sprite对象或SWF文件。此外,setCursor接受另外两个参数xOffset:Number = 0, yOffset:Number = 0,如果需要,您可以使用这些参数将图像从实际指针位置偏移。

回复:您的评论:

我相信你是对的。除了某些事件foo之外,我无法覆盖组件悬停游标。请记住,它是最近添加的光标,具有最高优先级(当然是“CursorMangager”)。

答案 1 :(得分:0)

答案 2 :(得分:0)

如果您要更改cursur,则需要在当前位于Flex TextInput控件的TextField子对象上时检查鼠标:

<?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>

这只是让它消失,但你可以利用这个机会通过用其他注释中描述的CursorManager方法替换Mouse.hide()来使光标成为你想要的任何东西。我并不认为这个事件是“欺骗”,而且覆盖PlayerGlobals.swc类总是比开放的Flex SDK更困难。