Flex 3: как изменить курсор мыши при наведении курсора на ввод текста? - PullRequest
6 голосов
/ 22 апреля 2009

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

обновление: похоже, этот процесс очень прост во Flex 4, согласно этому сообщению в блоге: http://blog.flexexamples.com/2008/11/03/setting-mouse-cursors-in-flash-player-10/

Поскольку я на данный момент застрял с Flex 3, как я могу сделать что-то подобное?

update2: Кроме того, этот вопрос несколько похож на этот вопрос: Как избежать изменения курсора над динамическими текстовыми полями во Flash CS3

Хотя я использую стандартный Flex Builder, а не Flash CS3.

Ответы [ 5 ]

7 голосов
/ 01 октября 2010

Просто для пояснения - классы MouseCursor и Mouse существуют также во Flex 3 на flash 10. Таким образом, вы можете подключиться к событиям 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;
});
4 голосов
/ 31 марта 2010

Есть три свойства, которые должны быть изменены useHandCursor = true buttonMode = true mouseChildren = false

Leete больше информации в этой статье http://www.anujgakhar.com/2008/03/27/flex-how-to-display-hand-cursor-on-components/

2 голосов
/ 22 апреля 2009

Вы должны использовать 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
}
0 голосов
/ 16 сентября 2009

есть и другой способ, установив для свойства buttonMode значение true для любого желаемого компонента. это приводит курсор мыши вместо текстового курсора.

0 голосов
/ 13 мая 2009

Вы можете использовать HBOX с меткой вместо TextInput. Система не будет изменять курсор, когда мышь находится над меткой. Если вы хотите, чтобы текст был редактируемым пользователем, вам нужно будет проделать дополнительную работу.

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
}
}
...