例えばちょっとした情報をポップアップで上げておき、それを元に別のポップアップに入力をしたいという場合、入力用のモーダルポップアップをあげてしまうと、先に出ていたポップアップが隠れてしまいます。
ということで、モーダルポップアップが来た場合にさらに割り込んで上に出て行く(若干うざめな)ポップアップを作ってみました。
プロフィール情報ボタンの後に、データ入力ボタンを押してみてください。
(見れない場合はこちら)
キモはNekoBeanPopup.mxmlの
private function handleAddedEvent(e:Event):void{ var comp:UIComponent = e.target as UIComponent; //作られたのがポップアップで、かつアラートじゃない場合 if(comp != null && comp.isPopUp && (comp is Alert)==false){ //自分を前面に押し出す PopUpManager.bringToFront(this); //お遊び処理(ねこびーんの画像を変える) image.source = happyImage; var timer:Timer = new Timer(1000,1); timer.addEventListener(TimerEvent.TIMER_COMPLETE,function(event:TimerEvent):void{ image.source = smileImage; }); timer.start(); } }
の部分です。
このハンドラはSystemManagerのEvent.ADDEDでひっかけてあるため、自分以外のポップアップが追加されたときに感知できます(PopupはApplicationの子供ではなく、SystemManagerの子供になるので)。
もしポップアップが作られたら、PopUpManager.bringToFront()を使って、自分を前に出します。
仕掛けはとしてはこんだけですので、ユーティリティ化とかして使ってみるのもいいかともいます。