私はWinformsとWPFの両方で多くのC#プログラミングを行っています。私は現在、クロスプラットフォームサポートのためにFlex/Airアプリケーションを開発中です。しかし、これは私の最初のフレックスプロジェクトなので、私は勉強しています。フレックス:ポップアップウィンドウ - [OK]または[キャンセル]を取得
ポップアップするウィンドウがあります。ユーザーはフォームに記入して、OKまたはCANCELを押します。私はC#でやったのと同じ方法で設定しましたが、うまくいきませんし、私が望むようにする方法が実際には見えません。
EDIT: は、だから私は今のイベントをしようとしている、イベントはもう一度...扱うことが
EDITは思えません。 ポップアップマネージャは、新しいインスタンスを作成するようなのでああ、それはですすでに作成したものを使用するのではなく、Formオブジェクトを使用します。
はそうSHOWWINDOW方法では、私はむしろ、ポップアップマネージャよりも、このコードに入れる:
parent.addChild(this);
を、私はそれを閉じたときに、私はそれを削除します。唯一の問題は、ポップアップマネージャのように親の残りの部分を無効にしないことです。それに関する提案はありますか?
PARENT:
private function btnAdd_Clicked():void
{
var form:Form = new Form();
form.addEventListener(CloseEvent.CLOSE, onFormClosed, false, 0, true);
recipeForm.showWindow(this);
}
private function onFormClosed(e:CloseEvent):void
{
//none of these Alerts are ever shown. I also tried breakpoints in debug to try an follow the code, with no luck
Alert.show("Closed");
if(e.detail == Alert.OK)
{
Alert.show("OK");
}
else if(e.detail == Alert.CANCEL)
{
Alert.show("Cancel");
}
}
CHILD:
private function btnCancel_Clicked():void
{
okClicked = false;
closeWindow();
}
public function closeWindow():void
{
var e:CloseEvent = new CloseEvent(CloseEvent.CLOSE);
e.detail = okClicked ? Alert.OK : Alert.CANCEL;
dispatchEvent(e);
PopUpManager.removePopUp(this);
}
public function showWindow(parent:WindowedApplication):void
{
var window:IFlexDisplayObject = PopUpManager.createPopUp(parent, RecipeForm, true);
PopUpManager.centerPopUp(window);
}
は、これがそうですが、イベントがちょうど...取り扱われていないようです 子: パブリック関数closeWindow():無効 { \tするvar E:CloseEvent =新しいCloseEvent(CloseEvent。閉じる); \t e.detail = okClicked? Alert.OK:Alert.CANCEL; \t dispatchEvent(e); \t \t PopUpManager.removePopUp(this); }親: プライベート関数btnAddRecipe_Clicked():ボイド {\t \t \t \t \tするvar recipeForm:RecipeForm =新しいRecipeForm()。 \t recipeForm.addEventListener(CloseEvent.CLOSE、onRecipeFormClosed、false、0、true); \t \t recipeForm.showWindow(this);無効 {// が得ることはありませんが、ここで取得します...::/ } – Joel
ああ、コメントはoopps ...改行を許可していません... I'LL(:CloseEvent e)のonRecipeFormClosed } プライベート関数元の投稿に編集してください。 – Joel
これは、showWindow()がRecipeFormクラスの新しいインスタンスを返すようです。そのクラスにイベントリスナーをアタッチしたいとします。イベントをディスパッチするオブジェクトは、リスナーが登録されているものと同じものであることを確認する必要があります。 –