Flex アプリケーションに表示されるデフォルトのカーソル (白い矢印) をスキンまたは変更するにはどうすればよいですか?
3 に答える
はい、これは可能です。を活用する必要がありますmx.managers.CursorManager
。
カーソルグラフィックを置き換える方法はありませんが、優先度の高い新しいカーソルをマネージャに追加することでこれを実現できます。
CursorManager.setCursor(myCursor, CursorManagerPriority.HIGH);
上記の例でmyCursor
は、JPEG、GIF、PNG、またはSVG画像、スプライトオブジェクト、またはSWFファイルを使用できます。さらに、必要に応じて、実際のポインタ位置から画像をオフセットするために使用できるsetCursor
2つの追加パラメータを受け入れます。xOffset:Number = 0, yOffset:Number = 0
Re:あなたのコメント:
私はあなたが正しいと信じています。イベントfoo以外に、コンポーネントのホバーカーソルをオーバーライドする方法はありません。表示されるのは、(もちろん、 `CursorMangagerに対して)最も優先度の高い最後に追加されたカーソルであることに注意してください。
次の例を ご覧ください。
カーソルを変更する場合は、現在 Flex TextInput コントロールの TextField サブオブジェクト上にあるときにマウスをチェックする必要があります。
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768" mouseMove="application1_mouseMoveHandler(event)">
<fx:Script>
<![CDATA[
protected function application1_mouseMoveHandler(event:MouseEvent):void
{
if(event.target is TextField)
{
if(TextField(event.target).type == TextFieldType.INPUT)
{
Mouse.hide();
}
}
else
{
Mouse.show();
}
}
]]>
</fx:Script>
<mx:TextInput width="300" />
</s:Application>
これは単にそれをなくすだけですが、Mouse.hide() を他のコメントで説明されている CursorManager メソッドに置き換えることで、カーソルを好きなものにする機会を利用できます。私はこのイベントを「トリッキー」とは考えていません。PlayerGlobals.swc クラスをオーバーライドすることは、オープンな Flex SDK のものよりも常に困難です。