Flex 3: Bagaimana cara mengubah Kursor Mouse saat mengarahkan mouse ke Input Teks?

Di Flex, secara default, saat Anda mengarahkan mouse ke Input Teks, kursor mouse diubah ke palang standar I. Bagaimana cara mengubah kursor ini sehingga kursor penunjuk tetikus biasa yang ditampilkan, bukan palang I?

pembaruan: Ya, sepertinya proses ini sangat sederhana di Flex 4 menurut posting blog ini: http://blog.flexexamples.com/2008/11/03/setting-mouse-cursors-in-flash-player-10/

Karena saya terjebak dengan Flex 3 untuk saat ini, bagaimana saya bisa melakukan hal serupa?

update2: Selain itu, pertanyaan ini agak mirip dengan pertanyaan ini: Menghindari perubahan kursor pada kolom teks dinamis di Flash CS3

Padahal, saya menggunakan Flex Builder standar, bukan Flash CS3.


person DyreSchlock    schedule 22.04.2009    source sumber


Jawaban (5)


Sekadar memperjelas - MouseCursor dan kelas Mouse juga ada di Flex 3 pada flash 10. Jadi Anda dapat menghubungkan ke acara MOUSE_OVER dan 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;
});
person tm_lv    schedule 01.10.2010
comment
Di paket manakah MouseCursor dan Mouse ada? Tautan tidak lagi mengarah ke tempat yang berguna. - person Mashmagar; 21.08.2013

Ada tiga properti yang harus diubah useHandCursor = true buttonMode = true mouseChildren = false

Pelajari informasi lebih lanjut di artikel ini http://www.anujgakhar.com/2008/03/27/flex-how-to-display-hand-cursor-on-components/

person Oscar Navidad    schedule 30.03.2010

Anda harus menggunakan 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
}
person Justin Niessner    schedule 22.04.2009
comment
metode setCursor mengambil objek Kelas. Bagaimana saya bisa menemukan Objek Kelas untuk kursor standar pada sistem operasi apa pun yang digunakan pengguna? - person DyreSchlock; 22.04.2009
comment
Anda harus membuat gambar panah jika Anda menginginkan fungsi ini. Sayangnya, Flex 3 meneruskan manajemen Kursor ke sistem jika tidak ada kursor yang ditentukan. Sistem Andalah yang menampilkan kursor I...bukan Flex. - person Justin Niessner; 23.04.2009
comment
hmmm. aneh. Jadi bagaimana sistem mengetahui kapan harus mengubah kursor? Apakah ada cara untuk mengubah identifikasi TextField sehingga tidak tahu cara mengubahnya? - person DyreSchlock; 23.04.2009

Anda dapat menggunakan HBOX dengan Label alih-alih Input Teks. Sistem tidak akan mengubah kursor ketika mouse berada di atas Label. Jika Anda ingin teks dapat diedit oleh pengguna, Anda perlu melakukan lebih banyak pekerjaan.

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
}
}
person Phil C    schedule 13.05.2009

ada juga cara lain dengan menyetel properti buttonMode ke true untuk komponen apa pun yang Anda inginkan. ini membawa kursor mouse, bukan kursor teks.

person Community    schedule 16.09.2009
comment
Ada tiga properti yang diperlukan. Lihat jawaban Oscar. - person mwilson; 25.03.2013