2009-04-22 23 views
6

Flexでは、デフォルトで、テキスト入力上にマウスを置くと、マウスカーソルが標準のIクロスバーに変更されます。このカーソルを変更して、Iクロスバーではなく、通常のマウスポインタのカーソルが表示されるようにするにはどうすればよいですか?フレックス3:テキスト入力のマウスオーバー時にマウスカーソルを変更するにはどうすればよいですか?

更新:まあ、このプロセスは、このブログの記事によるとFlexの4に汚れ、単純なようです:http://blog.flexexamples.com/2008/11/03/setting-mouse-cursors-in-flash-player-10/

私は当分の間のFlex 3とこだわっているので、どのように私は似たような操作を行うことができますか?

アップデート2:また、この質問はこの質問に幾分似ています Avoiding cursor change over dynamic text fields in Flash CS3

けれども、私は、標準のFlex Builderを使用して、いないのFlash CS3います。

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 
} 

答えて

2

あなたがCursorManagerを使用する必要があります。マウスがラベルの上にあるとき、システムはカーソルを変更しません。テキストをユーザーが編集できるようにするには、もう少し作業をする必要があります。

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 
} 
} 
+0

setCursorメソッドはClassオブジェクトを取ります。ユーザーがどのオペレーティングシステムを使用していても、標準カーソルのクラスオブジェクトを見つけるにはどうすればよいですか? – DyreSchlock

+1

この機能を使用するには、矢印イメージを作成する必要があります。残念ながら、カーソルが定義されていなければ、Flex 3はシステムにカーソル管理を渡します。私のカーソルを表示しているのはあなたのシステムです... Flexではありません。 –

+1

hmmm。奇妙な。では、システムはどのようにカーソルを変更するのかを知っていますか? TextFieldのIDを変更して変更を知らない方法はありますか? – DyreSchlock

0

あなたは代わりのTextInputのラベルとのhboxを使用することができます。

-1

あなたが望む任意のコンポーネントのためにbuttonModeプロパティを設定することにより、別の方法もあります。これにより、テキストカーソルの代わりにマウスカーソルが表示されます。

+0

3つの必須プロパティがあります。オスカーの答えを見てください。 – mwilson

7

のuseHandCursor =真 buttonMode = trueを mouseChildren = falseを

Leeteより多くの情報を修正しなければならない3つのプロパティがあります - MouseCursorMouseクラスが中にも存在します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; 
}); 
+0

'MouseCursor'と' Mouse'はどちらのパッケージにありますか?リンクは、もはや有用な場所につながるわけではありません。 – Mashmagar

関連する問題