我尝试使用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"/>
答案 0 :(得分:0)
将this.source = ...移出updateDisplayList方法。这就是造成闪烁的原因。改为覆盖createChildren。
此外,不建议以这种方式对路径进行硬编码。