Как удалить эффекты hover / rollOver глобально на компонентах Spark? - PullRequest
0 голосов
/ 28 октября 2010

Моя цель состоит в том, чтобы удалить все отзывы при наведении курсора мыши из пользовательского интерфейса.Мотивация заключается в том, чтобы тестировать прототипы сенсорного интерфейса и не желать, чтобы у пользователей была очередь интерактивности, когда мышь зависает, чего у них не будет с сенсорным интерфейсом.

У меня есть частичное решение, но у него две проблемы:

  1. Требуется обработчик событий для каждого компонента.
  2. Мигает при наведении курсора.

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

Ответы [ 2 ]

2 голосов
/ 28 октября 2010

Лучше переопределить getCurrentSkinState, например, см. Spark Button.as:

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

    if (isDown())
        return "down";

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

    return "up";
}

Так что просто удалите hovered || mouseCaptured "if".

1 голос
/ 29 октября 2010

Вот частичное решение, вызванное ответом Максима. Вы можете создать класс HoverlessButton, расширяя Button и переопределяя его так:

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

Вы должны сначала вызвать super impl, потому что он единственный, кто может правильно проверить isDown (), который является приватным.

...