如何为 Flex 应用程序中显示的默认光标(白色箭头)设置外观或以其他方式更改?
问问题
1261 次
3 回答
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)。
于 2009-08-19T17:06:30.107 回答
0
于 2009-08-20T17:06:10.110 回答
0
如果要更改光标,则需要在鼠标当前位于 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>
这只是让它消失,但是您可以利用这个机会通过将 Mouse.hide() 替换为其他注释中描述的 CursorManager 方法来使光标变为任何您想要的。我真的不认为这个事件是“诡计”,并且覆盖 PlayerGlobals.swc 类总是比开放的 Flex SDK 的东西更困难。
于 2009-08-20T19:57:55.663 回答