PopUpManager 使用時の注意点

Flash オブジェクト上でポップアップウインドウ風の動作を実装するには PopUpManager を使います。

var window:TitleWindow = new TitleWindow();
PopUpManager.addPopUp(window, this, true);

このとき、表示されるポップアップを中央寄せにするには centerPopUp メソッドを用います。

var window:TitleWindow = new TitleWindow();
// サイズを指定しておく
window.width = 2000;
window.height = 1500;
PopUpManager.addPopUp(window, this, true);
PopUpManager.centerPopUp(window);

ここで、縦横の幅がブラウザのウインドウサイズを超えると、表示しきれない分は中央から上下に切れた状態になります。さらに、ポップアップしたウインドウを動かしたり消したりできるポイントが完全に隠れてしまうと、移動することも閉じることもできなくなります。

このような場合 width や height に大きな固定値を入れるのは、閲覧環境がいろいろである事を考えても得策ではありません。そこで、ウインドウサイズからの相対値指定と、ポップアップしたウインドウのスクロールで対処します。

var window:TitleWindow = new TitleWindow();
// サイズをアプリケーション基準で設定してしまう
window.width = Application.application.width * 0.8;
window.height = Application.application.height * 0.8;
// スクロールバーを表示してしまう
window.horizontalScrollPolicy = "on";
window.verticalScrollPolicy = "on";
PopUpManager.addPopUp(window, this, true);
PopUpManager.centerPopUp(window);

ちなみにブラウザのウインドウをリサイズしてもポップアップは中央によってはくれません。そちらは ResizeEvent を拾って centerPopUp し直す等で対処できます。