[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も入っていますので気をつけてください。
上書きしたりすると背景が描画されなくなったりします。
== ランキングに参加しています。ぜひクリックお願いします ==
[Oracle] InstantClientによるODBC接続手順 [VBA] バイト数指定で文字列切り出し