Flash BuilderでAndroid/iPhoneアプリを作る、Flexモバイルで遊んでいます。
いくつか作ってみて思ったのは、「えっ?!Alertがないの?!」ということです。
ちょっとしたメッセージを表示するにも、何かしらのコンポーネントを配置して、そこに表示するようにしなくてはなりません。
他の人がどうしているのか、「Flexモバイル Alert」で調べると、やはり独自コンポーネントを作って対応している様子。要望が多いのか、Tour de Flexのサンプルにも、Alertの実装方法が登録されています。
そこで、私も27行で独自Alertを作ってみましたので、ここにメモっておきます。
<fx:Declarations> <fx:Component className="AlertMsg"> <s:SkinnablePopUpContainer> <s:TitleWindow id="titleWin" title="Caption" close="close()"> <s:VGroup horizontalAlign="center" paddingTop="8" paddingBottom="8" paddingLeft="8" paddingRight="8" gap="20"> <s:Label id="labelText" text="Message..." /> <s:Button label="OK" click="close()" /> </s:VGroup> </s:TitleWindow> <fx:Script> <![CDATA[ import mx.managers.PopUpManager; public static function show(owner:DisplayObjectContainer, message:String, title:String):void { var a:AlertMsg = new AlertMsg(); a.open(owner, true); a.titleWin.title = title; a.labelText.text = message; PopUpManager.centerPopUp(a); } ]]> </fx:Script> </s:SkinnablePopUpContainer> </fx:Component> </fx:Declarations>
使い方は、上記のコードを、Alertを使いたいMXMLにぺたりと貼り付けます。
そして、メッセージを表示したいところで以下のように書きます。
AlertMsg.show(this, "通信に失敗", "エラー");