2 Replies Latest reply on May 17, 2010 6:21 AM by amatarFob

    PopUps from PopUpManager.createPopUp blocks input in IE and Opera for a few seconds

    amatarFob

      When I show a Group derived control as a popUp with PopUpManager.createPopUp(this, MyPopUp, true, PopUpManagerChildList.POPUP); I get diferent behaviours depend on the browser.

       

      Firefox and Chrome runs fine, but Opera an IE gets blocked a few seconds before they react to input, not only the embedded swf but the whole browser.

       

      In both cases the content behind the PopUp is updated and the graphics moves as smooth as normal, so its seems to be something related to input or events.

       

      I tried to debug with IE, but in debug mode the application runs perfect so I can´t debug it.

        • 1. Re: PopUps from PopUpManager.createPopUp blocks input in IE and Opera for a few seconds
          Flex harUI Adobe Employee

          So you only have a problem when you export a release build?  Or will a debug

          build show the problem as long as you haven't attached the debugger?

          • 2. Re: PopUps from PopUpManager.createPopUp blocks input in IE and Opera for a few seconds
            amatarFob Level 1

            Both the release build and the debug build blocks IE and Opera input for a few seconds. If I attach the debugger the problem doesn't shows.

             

            Also happens in Chrome when the application switch to fullscreen mode but not in the browser mode.

             

            The problem appears after the migration from Flash Builder Beta 2 to the final version.

             

            EDITED.

            More info:

            Seems to be something related to the way the application draws. The rendering function looks like:

             

                        // Clear the background
                        backBuffer.fillRect( new Rectangle(0,0, backBuffer.width, backBuffer.height ), 0xFFFFFF );

             

            Do some render to backbuffer

                       
                        // Copy to uicomponent
                        uiComponent.graphics.clear();
                        uiComponent.graphics.beginBitmapFill( backBuffer, null, false, false );
                        uiComponent.graphics.drawRect(0,0, uiComponent.width, uiComponent.height );
                        uiComponent.graphics.endFill();

            and is called form "onEnterFrame" event, to update all the elements and draw it to the backbuffer.

             

            Where backBuffer and uiComponent are:

                    private var m_UIComponent:UIComponent = null;
                    private var m_BackBuffer:BitmapData = null;

             

            Obtained with:

                    public function get backBuffer():BitmapData
                    {
                        return m_BackBuffer;
                    }

             

                    public function get uiComponent():UIComponent
                    {
                        return m_UIComponent;
                    }

             

            Created as:

                            m_BackBuffer = new BitmapData(m_UIComponent.width, m_UIComponent.height, false);

             

            and for the uiComponent, obtained from the mxml:

                           <s:Group id="gameCanvas" width="100%" top="0" bottom="130"/>


            If the drawRect is set in a small area, the application works fine.

             

            My question now is, why the application becomes irresponsible but the render is still smooth if its a renderirng problem? And only with popUps in the final version of FB4.

             

            I've set up a minimal proyect with just the error, I can send it by email if you need it.