flex tabnavigator皮肤闪烁

时间:2010-04-10 10:30:34

标签: flex

我尝试使用PNG byextend使用TabSkin.as和SelectedTabSkin.as来修饰我的tabnavigator,但是,当我尝试将鼠标悬停在标签按钮上时,它会导致闪烁变为黑色并加载我定义的标签图像。我该怎么做才能避免闪烁?

TabSkin.as与SelectedTabSkin.as相同但不同的图像

package {
 import mx.controls.Image;

 public class TabSkin extends Image {
    public function TabSkin():void {
        super();
    }


    override protected  function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
        this.source = "asset/bb.png";
        this.styleName = "tab";
        super.updateDisplayList(unscaledWidth, unscaledHeight);
    }

}

}

Tab.MXML

    TabNavigator {
       tabHeight: 39;
       tab-width: 108;
       tabOffset: 1;
       tabStyleName: "tab";
    }

    .tab {
         fillColors: #000000, #000000;
         up-skin: ClassReference("TabSkin");
         down-skin: ClassReference("TabSkin");
         over-skin: ClassReference("TabSkin");

    selected-up-skin: ClassReference("SelectedTabSkin");
    selected-down-skin: ClassReference("SelectedTabSkin");
    selected-over-skin: ClassReference("SelectedTabSkin");
    }

    .selectedTab {
         font-weight: bold;
         corner-radius: 0;
    }

<mx:TabNavigator x="223" y="82" width="100%" height="100%" id="tab2"/>

1 个答案:

答案 0 :(得分:0)

将this.source = ...移出updateDisplayList方法。这就是造成闪烁的原因。改为覆盖createChildren。

此外,不建议以这种方式对路径进行硬编码。