«Модальная» функция во Flex отличается от Java? Не приостанавливать поток родительского компонента? - PullRequest
0 голосов
/ 19 января 2011

Я новичок во Flex 4. Я пытаюсь открыть пользовательский компонент Flex WindowTitle, и после того, как пользователь выберет некоторые значения, родительское окно должно быть обновлено.

Я показываю модальное окно, пользователь не может взаимодействовать с другими компонентами, но проблема, которую я обнаруживаю, заключается в выполнении потоков программы, даже если я хочу показать окно ввода как модальное, следующие способы обновления страница вызывается до того, как пользователь закроет модальную страницу. Я не знаю, работает ли flex или ActionScript иначе, чем в Java, где я использовал код.

Пожалуйста, смотрите комментарии к примеру кода:

<fx:Script>
    <![CDATA[
        import mx.controls.Alert;
        import mx.core.FlexGlobals;
        import mx.managers.PopUpManager;

        public function add_clickHandler(event:MouseEvent):void
        {
            var frm: FrmNovaOpcao = new FrmNovaOpcao();//titleWindow

            //add modal window
            PopUpManager.addPopUp(frm, this, true);
            //center modal window
            PopUpManager.centerPopUp(frm);

            refreshAll(); //this method is being called before the user close the modal window =[


        }
    ]]>
</fx:Script>

1 Ответ

0 голосов
/ 19 января 2011

Я решил добавить обработчики событий и функции обратного вызова в модальные окна. Я исследовал и понял, что flex управляется событиями и определяет приоритет обновления интерфейса, а не работает с потоками.

Неплохо для технологии, управляемой пользовательским интерфейсом.

<fx:Script>
    <![CDATA[
        import mx.controls.Alert;
        import mx.core.FlexGlobals;
        import mx.managers.PopUpManager;

        protected function add_clickHandler(event:MouseEvent):void
        {
            var frm: FrmNovaOpcao = new FrmNovaOpcao();

            //add modal window
            PopUpManager.addPopUp(frm, this, true);
            //center modal window
            PopUpManager.centerPopUp(frm);

            frm.btnAdd.addEventListener(MouseEvent.CLICK, refreshOptions);          

        }

        protected function refreshOptions(mousevent:MouseEvent):void{
             refreshAll(); 
        }
    ]]>
...