フラッシュでカスタムモーダルダイアログを作成しようとしています。私が選択した方法は、ボタンを追加する関数を備えたダイアログのUIを使用してムービークリップクラスを作成することです。次に、すべてのボタンを追加した後でUIのサイズを変更し、画面に表示します。
この時点までは機能します。ここで、このダイアログと呼ばれるものはすべて、ボタンが選択されるまで待ってから、ユーザーが他のことを実行できるようにします。次のようなもの:
var dialog:MyDialog = new MyDialog();
dialog.addButton(new MyButton("Foo"));
dialog.addButton(new MyButton("Bar"));
var result:String = dialog.show(); // we will wait here
dialog.showで、ムービークリップを表示し、ユーザーがダイアログのボタンをクリックしてから戻るのを待ちます。ただし、MouseEvent.CLICKイベントは非同期であるため、それを待つ方法がわかりません。
別の方法は、ダイアログを呼び出している画面に追加されるダイアログのカスタム完了イベント全体を作成することです。これにより、ロジックを続行し、他の入力を無効にするブール値を設定できますが、これはかなり面倒で、私はそのようなことは決してしませんでした。