Spark コンポーネントのホバー/ロールオーバー効果をグローバルに削除するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4039103

質問

私の目標は、UI からすべてのホバー フィードバックを削除することです。その動機は、タッチ インターフェイスのプロトタイプをテストすることであり、タッチ インターフェイスでは発生しないマウスホバリング時のインタラクティブ性のキューをユーザーに持たせたくないことです。

部分的な解決策はありますが、次の 2 つの問題があります。

  1. 各コンポーネントにイベント ハンドラーが必要です。
  2. ホバーすると点滅します。

        protected function ui_suppressHover(event:MouseEvent):void
        {
            var b = event.currentTarget as UIComponent;
            b.skin.currentState = "up";
        }
    

    <s:Button x="118" y="60" label="変更" click="button1_clickHandler(event)" rollOver="button1_rollOverHandler(event)" MouseOver="ui_suppressHover(event)"/>

役に立ちましたか?

解決 2

ここでは、マキシムの答えによって拍車をかけた部分的な解決策です。ボタンを拡張し、ようオーバーライドすることでHoverlessButtonクラスを作ることができます:

override protected function getCurrentSkinState():String
{               
    var state:String = super.getCurrentSkinState();
    if (state == "over")
        state = "up";
    return state;
}

あなたはそれがプライベートでisDown()、のために適切にチェックすることができる唯一の一つですので、最初のスーパーのimplを呼び出す必要があります。

他のヒント

これは、例えば、getCurrentSkinStateを上書きする方が良いでしょうスパークButton.asを参照してください。

override protected function getCurrentSkinState():String
{
    if (!enabled)
        return "disabled";

    if (isDown())
        return "down";

    if (hovered || mouseCaptured)
        return "over";

    return "up";
}

"場合" だからhovered || mouseCapturedを削除します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top