13 Replies Latest reply on May 9, 2013 1:09 PM by kglad

    Flash hangs while loading pages

    usspeedup2

      Hello everyone

       

      Trying to figure out why it hangs up when some pages are loading.

      Im not an expert with actionscript 3.0 but its ot omplicated to modify an XML web site

       

      I have uploaded a video to better show you guys whats happening

       

      http://youtu.be/ig6YnpwUxTc

       

      using Flash CS3 the SWF file is 256 KB

      uploaded the files to te server and tested.... same problem, tried with different computer... same, updated flash player.... same

      tried to publish with flash CS5.5 (and when it published (preview) its fine, no problems, but when uploaded to the server and tested , same problem

      when i say that it contains HTML, i mean that it contains tis code

       

       

      <?xml version="1.0" encoding="utf-8" ?>

      <data>

                <![CDATA[<br/><font face="Arial" size="35">КОНТАКТЫ</font><br/>Адресс:           ххххххххххххххххххххх<br/>Телефоны:          000 00 00 000, 000 00 00 000<br/>E-Mail:          <a href="mailto:address@yourdomain.com">address@yourdomain.com</a><br/><br/>Мы находимся в Станице-Луганской<br/>на развилке Рыбхоз-Станица-Луганское по новой трассе.</li></ul>

                <img src="images/katrin_map.jpg" width="490" height="342" hspace="0" vspace="0">]]>

      </data>

       

      If you need some more info just let me know

      please help

        • 1. Re: Flash hangs while loading pages
          kglad Adobe Community Professional & MVP

          post a link to your server and indicate what needs to be clicked to see the problem.

          • 2. Re: Flash hangs while loading pages
            usspeedup2 Level 1

            ok heres the link http://render.zz.mu

             

            i dont know what i did, but now its opening normally all the menu links.

             

            the only problem is, for some people it seems like its freezing after everything is loaded. The main page is loaded but nothing can be clicked.

            I thought maybe they need to update  their flash player ?

             

            tell me if there is some issues for you guys. thanks

            • 3. Re: Flash hangs while loading pages
              kglad Adobe Community Professional & MVP

              you app is setup to prevent a new page loading while one is already loading.  but, your app should stop loading the currently loading page and start loading the next page and should not disable its buttons.

               

              anyway, if a loading page doesn't complete download (for any reason), your app remains unresponsive unless the page is reloaded.

               

              you should fix your app to allow a download to be stopped and the next to continue.

              • 4. Re: Flash hangs while loading pages
                usspeedup2 Level 1

                can you help me with that ? how can I add that coding to allow a download to be stopped ?

                • 5. Re: Flash hangs while loading pages
                  kglad Adobe Community Professional & MVP

                  copy and paste the code that loads a new page.

                  • 6. Re: Flash hangs while loading pages
                    usspeedup2 Level 1

                    I can see 2 files that have something about the loding code but as Im not good at XML and Actionscript 3.0 is not my strong point.

                     

                    I can send you the web complete so you can take a look at anything you need.

                     

                    http://upload.ugm.ac.id/607katrin%20web.rar

                     

                    omg its so crazy

                    • 7. Re: Flash hangs while loading pages
                      kglad Adobe Community Professional & MVP

                      i don't download and correct files unless i'm hired.

                       

                      if you want free help, you'll need to find the loading code in your template.  it's not in your xml.  it's either attached to a movieclip timeline or in a class file.

                      • 8. Re: Flash hangs while loading pages
                        usspeedup2 Level 1

                        Im trying to do my best, here i made a video , because 1 big problem is that im not sure where is that loader script

                         

                        http://youtu.be/538tZQNS_0k

                        • 9. Re: Flash hangs while loading pages
                          kglad Adobe Community Professional & MVP

                          you need to start in com/Main.

                           

                          that's your document class.

                          • 10. Re: Flash hangs while loading pages
                            usspeedup2 Level 1

                            oh thanks !

                            ok so here is the code

                             

                             

                            package com

                            {

                                      import br.com.stimuli.loading.BulkLoader;

                                      import br.com.stimuli.loading.BulkProgressEvent;

                                      import com.scenes.SceneContact;

                                      import com.scenes.SceneEmpty;

                                      import com.scenes.SceneExternal;

                                      import com.scenes.SceneGallery;

                                      import com.scenes.SceneHtml;

                                      import com.scenes.SceneMenu;

                                      import com.scenes.SceneNews;

                                      import com.ui.Bg;

                                      import com.ui.Footer;

                                      import com.ui.Header;

                                      import com.ui.Menu;

                                      import com.utkudemir.Rect;

                                      import com.utkudemir.utils.Scene;

                                      import com.utkudemir.utils.SceneManager;

                                      import flash.display.MovieClip;

                                      import flash.display.Sprite;

                                      import flash.events.Event;

                                      import flash.events.MouseEvent;

                                      import flash.net.URLLoader;

                                      import flash.net.URLRequest;

                                      import gs.TweenLite;

                                      /**

                                      $(CBI)* ...

                                      $(CBI)* @author Utku Demir

                                      $(CBI)*/

                                      public class Main extends MovieClip

                                      {

                             

                                                public function Main()

                                                {

                                                          addEventListener(Event.ADDED_TO_STAGE, addedHandler);

                                                }

                             

                                                private function addedHandler(e:Event):void

                                                {

                                                          removeEventListener(Event.ADDED_TO_STAGE, addedHandler);

                             

                                                          if (Properties.BL == null)

                                                          {

                                                                    // create the preloader

                                                                    Properties.BL                                                  = new BulkLoader("itemLoader");

                                                                    Properties.BL.add("data/main.xml", { id:"data" } ).addEventListener(Event.COMPLETE, xmlLoadedHandler);

                                                                    Properties.BL.start(1);

                                                          }

                                                          else

                                                          {

                                                                    itemsLoadedHandler();

                                                          }

                             

                                                }

                             

                                                private function xmlLoadedHandler(e:Event):void

                                                {

                                                          // store xml data

                                                          Properties.DATA                                                  = Properties.BL.getXML("data");

                             

                                                          // add items to preloader

                                                          Properties.BL.add(String(Properties.DATA.config.@logo_source), { id:"logo" } );

                                                          Properties.BL.add(String(Properties.DATA.config.@main_page_bg_source), { id:String(Properties.DATA.config.@main_page_bg_source)} );

                                                          if(Properties.DATA.config.@sound_source != undefined) Properties.BL.add(String(Properties.DATA.config.@sound_source), { id:"music"} );

                                                          Properties.BL.addEventListener(BulkProgressEvent.COMPLETE, itemsLoadedHandler);

                                                }

                             

                                                private function itemsLoadedHandler(e:Event = null):void

                                                {

                                                          Properties.BL.removeEventListener(BulkProgressEvent.COMPLETE, itemsLoadedHandler);

                             

                                                          // set stage scale and alignment adjustments

                                                          stage.scaleMode                                                  = "noScale";

                                                          stage.align                                                            = "TL";

                                                          stage.addEventListener(Event.RESIZE, stageResizeHandler);

                                                          stageResizeHandler();

                             

                                                          // create the background class

                                                          var bg:Bg                                                            = new Bg();

                                                          addChild(bg);

                             

                                                          // create the header

                                                          var header:Header                                        = new Header();

                                                          addChild(header);

                             

                                                          // create the menu

                                                          var menu:Menu                                                  = new Menu();

                                                          addChild(menu);

                             

                                                          // create the footer

                                                          var footer:Footer                                        = new Footer();

                                                          addChild(footer);

                             

                                                          menu.open(1);

                                                          footer.open(1);

                             

                                                          // create scenes

                                                          var sceneEmpty:Scene                              = Scene(new SceneEmpty());

                                                          sceneEmpty.id                                                  = "empty";

                                                          addChild(sceneEmpty);

                             

                                                          var sceneExternal:Scene                              = Scene(new SceneExternal());

                                                          sceneExternal.id                                        = "external";

                                                          addChild(sceneExternal);

                             

                                                          var sceneNews:Scene                                        = Scene(new SceneNews());

                                                          sceneNews.id                                                  = "news";

                                                          addChild(sceneNews);

                             

                                                          var sceneHtml:Scene                                        = Scene(new SceneHtml());

                                                          sceneHtml.id                                                  = "html";

                                                          addChild(sceneHtml);

                             

                                                          var sceneGallery:Scene                              = Scene(new SceneGallery());

                                                          sceneGallery.id                                                  = "gallery";

                                                          addChild(sceneGallery);

                             

                                                          var sceneContact:Scene                              = Scene(new SceneContact());

                                                          sceneContact.id                                                  = "contact";

                                                          addChild(sceneContact);

                             

                                                          var sceneMenu:Scene                                        = Scene(new SceneMenu());

                                                          sceneMenu.id                                                  = "menu";

                                                          addChild(sceneMenu);

                             

                                                          var nOpen:int                                                  = -1;

                                                          for (var i:int = 0; i < Properties.DATA.content.item.length(); i++)

                                                          {

                                                                    if (Properties.DATA.content.item[i].@main == true)  nOpen = i;

                                                          }

                             

                                                          Properties.nMainPage                              = nOpen;

                             

                                                          if (nOpen != -1)

                                                          {

                                                                    TweenLite.delayedCall(1, Menu.instance.openItem, [nOpen]);

                                                                    if (Properties.DATA.content.item[nOpen].@bg_image != undefined)

                                                                    {

                                                                              Bg.instance.openImage(Properties.DATA.content.item[nOpen].@bg_im age);

                                                                    }

                                                                    else

                                                                    {

                                                                              Bg.instance.openImage(Properties.DATA.config.@main_page_bg_sourc e);

                                                                    }

                                                          }

                                                          else

                                                          {

                                                                    SceneManager.instance.openScene("empty");

                                                          }

                             

                                                          // create a top level sprite as container for gallery

                                                          var mTop:Sprite                                                  = new Sprite();

                                                          addChild(mTop);

                             

                                                          Properties.MTOP                                                  = mTop;

                                                }

                             

                                                private function stageResizeHandler(e:Event = null):void

                                                {

                                                          // set stage dimentions

                                                          Properties.WI                                                  = Math.max(1000, stage.stageWidth);

                                                          Properties.HE                                                  = Math.max(600, stage.stageHeight);

                             

                                                          // declare the stage is resized

                                                          dispatchEvent(new Event("stageResized"));

                                                }

                             

                                      }

                             

                             

                            }

                             

                            • 11. Re: Flash hangs while loading pages
                              kglad Adobe Community Professional & MVP

                              check com/scenes/SceneMenu.as to see if has click listeners for your menu items.

                              • 12. Re: Flash hangs while loading pages
                                usspeedup2 Level 1

                                I tested to publish again but to add a FULLSCREEN button at the bottom left, and for some miracle, those 2 buttons are working.

                                a friend tested and he said "I cant click the menu buttons but I can click the 2 buttons at the bottom/left"

                                and then he sais " I clicked the FULLSCREEN button and now even the menu buttons are working ! "

                                 

                                want to test for yourself ?

                                http://render.zz.mu

                                 

                                 

                                ok here is the SceneMenu.as

                                 

                                 

                                package com.scenes

                                {

                                          import br.com.stimuli.loading.BulkLoader;

                                          import br.com.stimuli.loading.BulkProgressEvent;

                                          import br.com.stimuli.loading.loadingtypes.LoadingItem;

                                          import com.cuisine.Cuisine;

                                          import com.Properties;

                                          import com.ui.Bg;

                                          import com.ui.Header;

                                          import com.ui.Menu;

                                          import com.utkudemir.Rect;

                                          import com.utkudemir.ScrollBar;

                                          import com.utkudemir.Text;

                                          import com.utkudemir.utils.Scene;

                                          import flash.display.BlendMode;

                                          import flash.display.Sprite;

                                          import flash.events.Event;

                                          import gs.easing.Expo;

                                          import gs.TweenLite;

                                          /**

                                          * ...

                                          * @author Utku DEMİR || utku@csdlab.com

                                          */

                                          public class SceneMenu extends Scene

                                          {

                                                    // variables

                                                    private var bl                                                  :BulkLoader;

                                                    private var bPrepared                              :Boolean          = false;

                                 

                                                    private var xml                                                  :XML;

                                                    private var nImageCount                              :int;

                                 

                                                    private var mFakeForScroll                    :Rect;

                                                    private var mItems                                        :Sprite;

                                                    private var mItemsMask                              :Rect;

                                 

                                                    private var mMainLoaderBar                    :Rect;

                                                    private var nLoaded                                        :int;

                                                    private var nCurrent                              :int;

                                                    private var bLoaded                                        :Boolean;

                                 

                                                    private var mMask                                        :Rect;

                                                    private var mMasked                                        :Sprite;

                                                    private var mBg                                                  :Rect;

                                                    private var mBase                                        :Sprite;

                                                    private var mScrollbarMask                    :Rect;

                                                    private var scrollbar                              :ScrollBar;

                                 

                                                    private var bResize                                        :Boolean;

                                                    private var aMenuItems                              :Array;

                                 

                                                    public function SceneMenu()

                                                    {

                                                              visible                                                   = false;

                                                              mouseChildren                                         = false;

                                                    }

                                 

                                                    private function prepare():void

                                                    {

                                                              // declare it's prepared

                                                              bPrepared                                                   = true;

                                 

                                                              // create the loader

                                                              bl                                                                      = new BulkLoader("menuLoader");

                                 

                                                              // create scene items

                                                              mItems                                                            = new Sprite();

                                                              mItems.x                                                  = 420;

                                 

                                                              mItemsMask                                                  = new Rect(550, 100);

                                                              mItemsMask.height                              = 0;

                                                              mItemsMask.x                                        = mItems.x;

                                                              addChild(mItemsMask);

                                 

                                                              mItems.mask                                                  = mItemsMask;

                                 

                                                              mBg                                                                      = new Rect(510, 100, 0x000000, 0, 0, .9);

                                                              mBg.scaleX                                                  = 0;

                                                              addChild(mBg);

                                                              addChild(mItems);

                                 

                                                              mMainLoaderBar                                        = new Rect(100, 3, 0xFFFFFF);

                                                              mMainLoaderBar.width                    = 0;

                                                              mMainLoaderBar.x                              = 420;

                                                              addChild(mMainLoaderBar);

                                 

                                                              mMask                                                            = new Rect(550, 100, 0xFF0000);

                                                              mItems.addChild(mMask);

                                 

                                                              mMasked                                                            = new Sprite();

                                                              mMasked.mask                                        = mMask;

                                                              mItems.addChild(mMasked);

                                 

                                                              mBase                                                            = new Sprite();

                                                              mBase.x                                                            = 10;

                                                              mMasked.addChild(mBase);

                                 

                                                              mFakeForScroll                                        = new Rect(1, 100, 0, 0, 0, 0);

                                 

                                                              scrollbar                                                  = new ScrollBar();

                                                              scrollbar.x                                                  = 512;

                                                              mItems.addChild(scrollbar);

                                 

                                                              TweenLite.to(scrollbar, 0, { tint:0xFFFFFF } );

                                 

                                                              scrollbar.init(mMask, mMasked, 0, 50, 0, mFakeForScroll);

                                 

                                                              stage.addEventListener("stageResized", stageResizedHandler, true);

                                                              stageResizedHandler();

                                                    }

                                 

                                                    private function setContent():void

                                                    {

                                                              mMainLoaderBar.width                    = 0;

                                                              mMainLoaderBar.x                              = mItems.x;

                                 

                                                              mMasked.y                                                  = 0;

                                                              mBg.x                                                            = 0;

                                                              stageResizedHandler();

                                 

                                                              TweenLite.to(mBg, .5, { x:mItems.x, scaleX:1, ease:Expo.easeInOut, onComplete:loadXml } );

                                                    }

                                 

                                                    private function loadXml():void

                                                    {

                                                              nLoaded                                                            = 0;

                                                              nCurrent                                                  = 0;

                                                              bLoaded                                                            = false;

                                 

                                                              addEventListener(Event.ENTER_FRAME, enterFrameHandler);

                                 

                                                              var sXml:String                                        = Properties.CONTENTXML.@xml;

                                 

                                                              var xmlItem:LoadingItem;

                                                              if (bl.get(sXml) == null)

                                                              {

                                                                        xmlItem                                                  = bl.add(sXml, { id:sXml } );

                                                              }

                                                              else

                                                              {

                                                                        xmlItem                                                  = bl.get(sXml);

                                                              }

                                 

                                                              xmlItem.addEventListener(Event.COMPLETE, xmlLoadedHandler);

                                 

                                                              if (xmlItem.isLoaded) xmlItem.dispatchEvent(new Event(Event.COMPLETE));

                                 

                                                              if (!bl.isRunning) bl.start(1);

                                                    }

                                 

                                                    private function enterFrameHandler(e:Event):void

                                                    {

                                                              if (nCurrent >= 100 && bLoaded)

                                                              {

                                                                        removeEventListener(Event.ENTER_FRAME, enterFrameHandler);

                                                                        TweenLite.to(mMainLoaderBar, .3, { width:0, x:mItems.x + mMainLoaderBar.width, ease:Expo.easeInOut } );

                                                                        openScene();

                                                              }

                                                              else

                                                              {

                                                                        if (nCurrent < nLoaded) nCurrent = Math.min(nLoaded, nCurrent + 5);

                                                                        nCurrent = Math.min(nCurrent, 100);

                                                                        mMainLoaderBar.width          = 510 * nCurrent / 100;

                                                              }

                                                    }

                                 

                                                    private function xmlLoadedHandler(e:Event):void

                                                    {

                                                              xml                                                                      = bl.getXML(e.target.id);

                                                              nLoaded                                                            = 20;

                                 

                                                              var aImages:Array                              = new Array();

                                                              var sImage:String;

                                                              var imageItem:LoadingItem;

                                                              for (var i:int = 0; i < xml.cuisine.length(); i++)

                                                              {

                                                                        sImage                                                  = xml.cuisine[i].@image;

                                                                        if(aImages.indexOf(sImage) == -1) aImages.push(sImage);

                                 

                                                                        for (var j:int = 0; j < xml.cuisine[i].item.length(); j++)

                                                                        {

                                                                                  sImage                                        = xml.cuisine[i].item[j].@image;

                                                                                  if(aImages.indexOf(sImage) == -1) aImages.push(sImage);

                                                                        }

                                                              }

                                 

                                                              nImageCount                                                  = aImages.length - 1;

                                 

                                                              for (i = 0; i < aImages.length; i++)

                                                              {

                                                                        sImage                                                  = aImages[i];

                                 

                                                                        if (bl.get(sImage) == null)

                                                                        {

                                                                                  imageItem                              = bl.add(sImage, { id:sImage } );

                                                                        }

                                                                        else

                                                                        {

                                                                                  imageItem                              = bl.get(sImage);

                                                                        }

                                 

                                                                        imageItem.addEventListener(Event.COMPLETE, imageLoadedHandler);

                                 

                                                                        if (imageItem.isLoaded) imageItem.dispatchEvent(new Event(Event.COMPLETE));

                                                              }

                                 

                                                              bl.addEventListener(BulkProgressEvent.COMPLETE, loadingCompleteHandler);

                                                              if (bl.isFinished) bl.dispatchEvent(new BulkProgressEvent(BulkProgressEvent.COMPLETE));

                                                    }

                                 

                                                    private function imageLoadedHandler(e:Event):void

                                                    {

                                                              nLoaded                                                            += 80 / nImageCount;

                                                    }

                                 

                                                    private function loadingCompleteHandler(e:BulkProgressEvent):void

                                                    {

                                                              bl.removeEventListener(BulkProgressEvent.COMPLETE, loadingCompleteHandler);

                                                              bLoaded                                                            = true;

                                                    }

                                 

                                                    private function openScene():void

                                                    {

                                                              aMenuItems                                        = new Array();

                                 

                                                              var cuisine:Cuisine;

                                                              var nY:int                                        = 0;

                                                              for (var i:int = 0; i < xml.cuisine.length(); i++)

                                                              {

                                                                        cuisine                                        = new Cuisine(XML(xml.cuisine[i]), bl, 520, nY);

                                                                        cuisine.addEventListener("over", itemOverHandler);

                                                                        cuisine.addEventListener("out", itemOutHandler);

                                                                        cuisine.addEventListener("clicked", itemClickHandler);

                                                                        cuisine.addEventListener("closeClicked", itemCloseClickHandler);

                                                                        cuisine.Enable                    = true;

                                                                        mBase.addChild(cuisine);

                                                                        aMenuItems.push(cuisine);

                                 

                                                                        nY                                                  += cuisine.he;

                                                              }

                                 

                                                              mFakeForScroll.height          = nY;

                                 

                                                              scrollbar.reset();

                                                              stageResizedHandler();

                                 

                                                              TweenLite.to(mItemsMask, .3, { height:Properties.HE, ease:Expo.easeInOut, onComplete:function()

                                                              {

                                                                        bResize                                        = true;

                                                                        scrollbar.enable          = true;

                                                                        stageResizedHandler();

                                                                        mouseChildren                                         = true;

                                                                        onOpen();

                                                                        Menu.instance.enable();

                                 

                                                                        if (Properties.CONTENTXML.@bg_image != undefined)

                                                                        {

                                                                                  Bg.instance.openImage(Properties.CONTENTXML.@bg_image);

                                                                        }

                                                                        else

                                                                        {

                                                                                  Bg.instance.openImage(Properties.DATA.config.@main_page_bg_sourc e);

                                                                        }

                                                              } } );

                                                    }

                                 

                                                    private function itemCloseClickHandler(e:Event):void

                                                    {

                                                              var item:Cuisine;

                                                              for (var i:int = 0; i < aMenuItems.length; i++)

                                                              {

                                                                        item                                                            = Cuisine(aMenuItems[i]);

                                                                        item.idle();

                                                              }

                                 

                                                              TweenLite.to(mMasked, .3, { delay:.6, y:0, ease:Expo.easeInOut } );

                                                              mFakeForScroll.height                              = aMenuItems[aMenuItems.length - 1].orgY + aMenuItems[aMenuItems.length - 1].he;

                                                              scrollbar.reset();

                                                              scrollbar.resize();

                                                    }

                                 

                                                    private function itemClickHandler(e:Event):void

                                                    {

                                                              var item:Cuisine;

                                                              for (var i:int = 0; i < aMenuItems.length; i++)

                                                              {

                                                                        item                                                            = Cuisine(aMenuItems[i]);

                                                                        if (Cuisine(e.target) == item)

                                                                        {

                                                                                  item.open(.3);

                                                                                  TweenLite.to(item, .3, { delay:.3, y:0, ease:Expo.easeInOut } );

                                 

                                                                                  mFakeForScroll.height          = item.he;

                                                                        }

                                                                        else

                                                                        {

                                                                                  item.close();

                                                                        }

                                                              }

                                                              TweenLite.to(mMasked, .3, { y:0, ease:Expo.easeInOut } );

                                                              scrollbar.reset();

                                                              scrollbar.resize();

                                                    }

                                 

                                                    private function itemOverHandler(e:Event):void

                                                    {

                                                              for (var i:int = 0; i < aMenuItems.length; i++)

                                                              {

                                                                        TweenLite.to(aMenuItems[i], .3, { alpha:Cuisine(e.target) == aMenuItems[i] ? 1 : .6, ease:Expo.easeOut } );

                                                              }

                                                    }

                                 

                                                    private function itemOutHandler(e:Event):void

                                                    {

                                                              for (var i:int = 0; i < aMenuItems.length; i++)

                                                              {

                                                                        TweenLite.to(aMenuItems[i], .3, { alpha:1, ease:Expo.easeOut } );

                                                              }

                                                    }

                                 

                                                    public function open():void

                                                    {

                                                              bResize                                                            = false;

                                 

                                                              if(!bPrepared) prepare();

                                                              setContent();

                                 

                                                              visible                                                   = true;

                                                    }

                                 

                                                    public function close():void

                                                    {

                                                              scrollbar.enable                              = false;

                                                              bResize                                                            = false;

                                                              TweenLite.to(mItemsMask, .3, { height:0, ease:Expo.easeInOut, onComplete:function()

                                                              {

                                                                        TweenLite.to(mBg, .5, { x:Properties.WI, scaleX:0, ease:Expo.easeInOut, onComplete:function()

                                                                        {

                                                                                  visible                                                   = false;

                                                                                  onClose();

                                                                                  while (mBase.numChildren > 0) mBase.removeChildAt(0);

                                                                        }} );

                                                              }});

                                                              mouseChildren                                         = false;

                                                    }

                                 

                                                    private function stageResizedHandler(e:Event = null):void

                                                    {

                                                              mBg.height                                                  =

                                                              mMask.height                                        = Properties.HE;

                                 

                                                              if (bResize)

                                                              {

                                                                        mItemsMask.height                    = Properties.HE;

                                                              }

                                 

                                                              scrollbar.resize();

                                                    }

                                          }

                                 

                                }

                                 

                                • 13. Re: Flash hangs while loading pages
                                  kglad Adobe Community Professional & MVP

                                  that's going to take more time to properly debug.

                                   

                                  i see what looks like something helpful ( bl.addEventListener(BulkProgressEvent.COMPLETE, loadingCompleteHandler);) and i see what looks like a place where buttons are enabled    (Menu.instance.enable();) but i don't see where they're disabled so i'm not sure using  Menu.instance.enable(); will enable those buttons.

                                   

                                  you could hope for the best and try:

                                   

                                  bl.addEventListener(BulkLoader.ERROR,loadingCompleteHandler);

                                   

                                  and it might fix the problem.  but, it may just introduce more problems.