Я пытаюсь поместить ярлыки в формате html на вкладки TabNavigator.
Я видел SuperTabNavigator во FlexLib, но, похоже, он мне не помог.
Я нашел этот HTML-код кнопки и смог внедрить свой собственный TabBar и заставить его изменить класс, созданный ClassFactory при создании navItem.
HtmlTabNavigator:
public class HtmlTabNavigator extends TabNavigator
{
public function HtmlTabNavigator()
{
super();
}
override protected function createChildren():void
{
if (!tabBar)
{
tabBar = new HtmlTabBar(); // inject my class
tabBar.name = "tabBar";
tabBar.focusEnabled = false;
tabBar.styleName = new StyleProxy(this, tabBarStyleFilters);
rawChildren.addChild(tabBar);
if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0)
{
tabBar.setStyle("paddingTop", 0);
tabBar.setStyle("paddingBottom", 0);
tabBar.setStyle("borderStyle", "none");
}
}
super.createChildren(); // ommits original TabBar creation but continues in inheritance chain
}
public function setHtmlLabels( htmlLabels:Array ):void
{
for (var i:uint = 0; i < tabBar.numChildren; i++)
{
var button:Button = tabBar.getChildAt( i ) as Button;
button.label = htmlLabels[ i ];
}
}
}
HtmlTabBar:
public class HtmlTabBar extends TabBar
{
public function HtmlTabBar()
{
super();
navItemFactory = new ClassFactory(HtmlButton);
}
}
Теперь у меня проблемы со стилем кнопки, так как она выглядит как обычная кнопка, а не как вкладка. Мне не понятно, почему это работает при использовании ButtonBarButton.
Любые идеи приветствуются.
Спасибо
Stefan