プロプログラマ

プログラマーを職業としてます。 Flex,Air,C#,Oracle,HTML+JSの言語ノウハウを中心に情報発信していきます

[Air] ステータスバーに、ボタンを追加する

Airの画面下にあるステータスバーに文字列を表示するにはWindowedApplicationのstatusプロパティに文字列をセットすればOKです。
ですが、ステータスバーに文字以外も入れたいと思ったらどうすればいいでしょう。

そこで、ステータスバーにボタンを追加する方法を紹介します。
もっときちんと部品化すれば使いやすくなりますが、とりあえずできる例としてご参考までに。

この例ではボタンを追加していますが、Groupに追加しているだけなので何でも追加できます。

▼右端にボタンを寄せる


protected function windowedapplication_creationCompleteHandler(event:FlexEvent):void {
var sb:Group = FlexGlobals.topLevelApplication.statusBar;

var buttonGroup:HGroup = new HGroup();
buttonGroup.right = 5;
buttonGroup.top = 0;
buttonGroup.bottom = 0;
buttonGroup.verticalAlign = “middle”;

for (var i:int = 0; i < 10; i++) { var b:Button = new Button(); b.id ="T" + (i + 1); b.label = b.id; b.width = 45; b.height = sb.height - 4; b.addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void {Alert.show("This is Test " + event.currentTarget)}); buttonGroup.addElement(b); } sb.addElement(buttonGroup); this.status = "test message"; } [/as3]

 
▼左端にボタンを寄せる


protected function windowedapplication_creationCompleteHandler(event:FlexEvent):void {
var sb:Group = FlexGlobals.topLevelApplication.statusBar;

var statusLabel:Label = sb.getElementAt(2) as Label;
if (statusLabel != null) {
statusLabel.right = 5;
statusLabel.setStyle(“textAlign”, “right”);
}

var buttonGroup:HGroup = new HGroup();
buttonGroup.left = 5;
buttonGroup.top = 0;
buttonGroup.bottom = 0;
buttonGroup.verticalAlign = “middle”;

for (var i:int = 0; i < 10; i++) { var b:Button = new Button(); b.id ="T" + (i + 1); b.label = b.id; b.width = 45; b.height = sb.height - 4; b.addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void {Alert.show("This is Test " + event.currentTarget)}); buttonGroup.addElement(b); } sb.addElement(buttonGroup); this.status = "test message"; } [/as3]
 
なお、FlexGlobals.topLevelApplication.statusBarには、
もともと文字列を表示するためのLabelの他、背景描画用のRectも入っていますので気をつけてください。
上書きしたりすると背景が描画されなくなったりします。

 

== ランキングに参加しています。ぜひクリックお願いします ==

プログラム ブログランキングへ
にほんブログ村 IT技術ブログへ
にほんブログ村

, ,

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください