Flex 3:当鼠标悬停在文本输入上时,如何更改鼠标光标?

时间:2009-04-22 19:15:39

标签: flex cursors

在Flex中,默认情况下,当您将鼠标悬停在文本输入上时,鼠标光标将更改为标准I横杆。如何更改此光标以显示常规鼠标指针光标而不是I横杆?

更新:根据这篇博文,似乎这个过程在Flex 4中很简单:http://blog.flexexamples.com/2008/11/03/setting-mouse-cursors-in-flash-player-10/

由于我暂时停留在Flex 3上,我该如何做类似的事情?

update2:此问题有点类似于这个问题: Avoiding cursor change over dynamic text fields in Flash CS3

虽然,我使用的是标准的Flex Builder,而不是Flash CS3。

5 个答案:

答案 0 :(得分:7)

只是为了澄清 - 在Flash 10上的Flex 3中也存在MouseCursorMouse类。 所以你可以挂钩到MOUSE_OVER和MOUSE_OUT事件:

elem.addEventListener(MouseEvent.MOUSE_OVER, function(event:Event):void {
    Mouse.cursor = MouseCursor.BUTTON;
});

elem.addEventListener(MouseEvent.MOUSE_OUT, function(event:Event):void {
    Mouse.cursor = MouseCursor.ARROW;
});

答案 1 :(得分:4)

必须修改三个属性  useHandCursor = true buttonMode = true mouseChildren = false

Leete更多信息,请参阅本文http://www.anujgakhar.com/2008/03/27/flex-how-to-display-hand-cursor-on-components/

答案 2 :(得分:2)

您必须使用CursorManager:

import mx.managers.CursorManager;

protected function textMouseOverHandler(event:Event):void
{
    CursorManager.setCursor(yourCursor, yourPriority, xOffset, yOffset);
    // Rest of your handler
}

protected function textMouseOutHandler(event:Event):void
{
    // be sure to set the cursor back here
}

答案 3 :(得分:0)

您可以将HBOX与Label一起使用而不是TextInput。当鼠标悬停在Label上时,系统不会更改光标。如果您希望用户可以编辑文本,则需要做更多的工作。

public class MyTextInput extends HBox
{
public function  MyTextInput()
{
   super();
   var label:Label = new Label();
   label.text="some text";
   addChild(label);
   addEventListener(MouseEvent.CLICK, editProperties, true);
}
private function editProperties(event:MouseEvent)
{
  //do something to allow the user to edit the text e.g. PopupManager.createPopup
}
}

答案 4 :(得分:-1)

还可以通过将 buttonMode 属性设置为 true 来实现您希望的任何组件。这会带来鼠标光标而不是文本光标。