如何修改或更改Flex应用程序中显示的默认光标(白色箭头)?
答案 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更困难。