Я много занимался программированием на C # как для Winforms, так и для WPF. Сейчас я работаю над приложением Flex / Air для кроссплатформенной поддержки. Но это мой первый гибкий проект, поэтому я учусь по ходу дела.
У меня есть окно, которое я хочу открыть, чтобы пользователь заполнил форму, а затем нажал ОК или ОТМЕНА. Я настроил его так же, как в C #, но он не работает, и я не вижу способа заставить его делать то, что я хочу.
EDIT:
Так что я сейчас пытаюсь события, события, кажется, не обрабатываются ...
Снова отредактируйте:
О, это потому, что менеджер всплывающих окон, кажется, создает новый экземпляр объекта Form, а не использует тот, который я уже создал.
поэтому в методе showWindow я вставил этот код, а не диспетчер всплывающих окон:
parent.addChild(this);
затем я удаляю его, когда закрываю. Единственная проблема в том, что он не отключает остальных родителей, как это делает менеджер всплывающих окон. Есть предложения по этому поводу?
РОДИТЕЛЕЙ:
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");
}
}
РЕБЕНОК:
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);
}