2009-04-22 12 views
6

En Flex, de forma predeterminada, cuando pasa el mouse sobre una entrada de texto, el cursor del mouse se cambia a la barra cruzada estándar I. ¿Cómo puedo cambiar este cursor para que se muestre el cursor del puntero del mouse normal en lugar de la barra cruzada I?Flex 3: ¿Cómo puedo cambiar el Cursor del mouse cuando se pasa el mouse sobre una entrada de texto?

actualización: Bueno, parece que este proceso es simple suciedad en Flex 4 de acuerdo con esta entrada del blog: http://blog.flexexamples.com/2008/11/03/setting-mouse-cursors-in-flash-player-10/

Desde que estoy atascado con Flex 3, por el momento, ¿cómo puedo hacer algo similar?

update2: También, esta pregunta es algo similar a esta pregunta: Avoiding cursor change over dynamic text fields in Flash CS3

Aunque, estoy usando el estándar de Flex Builder, no Flash CS3.

Respuesta

2

usted tiene que utilizar el 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

el método setCursor toma un objeto Class sin embargo. ¿Cómo puedo encontrar el objeto de clase para el cursor estándar en cualquier sistema operativo en el que esté el usuario? – DyreSchlock

+1

Tendrá que crear la imagen de la flecha si desea esta funcionalidad. Desafortunadamente, Flex 3 transfiere la administración del Cursor al sistema si no se define ningún cursor. Es su sistema el que muestra el cursor I ... no Flex. –

+1

hmmm. extraño. Entonces, ¿cómo sabe el sistema cuándo cambiar el cursor? ¿Hay alguna manera de cambiar la identificación de un TextField para que no sepa cambiarlo? – DyreSchlock

0

Se puede usar un HBOX con una etiqueta en vez de un TextInput. El sistema no cambiará el cursor cuando el mouse esté sobre la etiqueta. Si desea que el texto sea editable por el usuario, tendrá que hacer un poco más de trabajo.

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

También hay otra manera mediante el establecimiento de buttonMode propiedad a cierto para cualquier componente que desea. esto trae el cursor del mouse en lugar del cursor de texto.

+0

Hay tres propiedades requeridas. Ver la respuesta de Oscar. – mwilson

7

sólo para aclarar - existen las clases MouseCursor y Mouse también en Flex 3 en flash 10. para que pueda conectar a los eventos MOUSE_OVER y 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; 
}); 
+0

¿En qué paquete existen 'MouseCursor' y' Mouse'? Los enlaces ya no son útiles. – Mashmagar

Cuestiones relacionadas