代码之家  ›  专栏  ›  技术社区  ›  Turadg

如何在Spark组件上全局移除悬停/翻转效果?

  •  0
  • Turadg  · 技术社区  · 14 年前

    我有一个部分的解决方案,但它有两个问题:

    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=“Change em”click=“button1_clickHandler(event)”rollOver=“button1_rollOverHandler(event)”mouseOver=“ui_suppressHover(event)”/>

    2 回复  |  直到 9 年前
        1
  •  2
  •   Maxim Kachurovskiy    14 年前

    最好是重写 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 “如果”。

        2
  •  1
  •   Marcel Ray    12 年前

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

    您必须首先调用super impl,因为它是唯一可以正确检查isDown()的方法,isDown()是私有的。

    推荐文章