Spark コンポーネントのホバー/ロールオーバー効果をグローバルに削除するにはどうすればよいですか?
-
27-09-2019 - |
質問
私の目標は、UI からすべてのホバー フィードバックを削除することです。その動機は、タッチ インターフェイスのプロトタイプをテストすることであり、タッチ インターフェイスでは発生しないマウスホバリング時のインタラクティブ性のキューをユーザーに持たせたくないことです。
部分的な解決策はありますが、次の 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
を削除します。
所属していません StackOverflow