現在、この投稿のアイデアを使用して s:WindowedApplication をスキンしているので、コンポーネントの宣言にskinClass="StatusBarSkin1"
. また、事前初期化関数には、ラベルを使用して正しいテキストをステータス バーに表示するメソッドがあります。これは正常に機能します。
skinClass
CSS でを設定しようとすると問題が発生するため、 と の間StatusBarSkin1
で変更できますStatusBarSkin2
。だから私は次のようなことをしています:
Style1.css
----------
.mainWindow
{
skinClass: ClassReference("StatusBarSkin1");
}
Style2.css
----------
.mainWindow
{
skinClass: ClassReference("StatusBarSkin2");
}
これを行うと、テーマは正常に読み込まれますが、ステータス バーのテキストは表示されません。また、WindowedApplication 自体でテーマを設定すると、メソッドを使用して CSS ファイルを変更しても、ステータス バーのスキンを変更できません。
私が今していることよりもこれを実装するためのより良い方法はありますか?
編集:
statusbar オブジェクトはHGroup
、いくつかのラベルとその中にあるものです。
ステータスバーのスキンは次のコードで提供されます:
<s:Group id="statusBar"
width="100%"
minHeight="20">
<!-- status bar fill -->
<s:Rect left="0"
right="0"
top="0"
bottom="0">
<s:fill>
<s:LinearGradient rotation="90">
<s:GradientEntry color="0x575757" />
<s:GradientEntry color="0x373737" />
</s:LinearGradient>
</s:fill>
</s:Rect>
<!-- status bar highlight -->
<s:Rect left="1"
right="1"
top="1"
bottom="0">
<s:stroke>
<s:LinearGradientStroke rotation="90"
weight="1">
<s:GradientEntry color="0x575757" />
<s:GradientEntry color="0x373737" />
</s:LinearGradientStroke>
</s:stroke>
</s:Rect>
<!-- status text -->
<!--- @copy spark.components.WindowedApplication#statusText -->
<s:Label id="statusText" />
<s:Group id="statusBarSkin" />
</s:Group>
そして、私の preinit 関数は
private function InitStatusBar():void
{
statusGroup = new StatusBar();
(statusBar as Group).addElement(statusGroup);
}