Author Topic: what event does Flare3DLoader dispatch on complete?  (Read 241 times)

Alexey Sovko   «   on: August 10, 2011, 04:15:38 PM »
What event does Flare3DLoader disptach on complete?
I have catch ProgressEvents, but haven't chatch Event.Complete.
What am I doing wrong?
How can i recognize when model was loaded.


Ariel Nehmad   «   Reply #1 on: August 11, 2011, 02:14:33 PM »
how are you loading the models? through the scene or creating a new Flare3DLoader directly?

the Flare3DLoader could dispatch "progress", "complete" or "ioError"

huang chonggao   «   Reply #2 on: August 22, 2011, 02:43:08 AM »
I test load  .f3d 
no complete
but load  .dae
can complete event 
useing  flare3D  2.0
why  ?

Zachary Foley   «   Reply #3 on: April 19, 2012, 03:01:45 PM »
I have the same problem: the Flare3DLoader never fires a complete event, and it would appear that the loaded property never gets set to true.

Zachary Foley   «   Reply #4 on: April 19, 2012, 03:07:42 PM »
OK: so here is the problem. If you leave the optional scene parameter null, it never fires a complete event, because the complete event is fired by the scene object. 
Here is code that worked for me in a case where I have to preload 5 large models.

package game 
{
    import flare.basic.Scene3D;
    import flare.Flare3D;
    import flare.loaders.Flare3DLoader;
    import flash.events.Event;
    /**
     * ...
     * @author Zachary Foley
     */
    public class LevelLoader 
    {
      private var levelLoaders:Vector.<Flare3DLoader> = new Vector.<Flare3DLoader>;
      private var loadingIndex:uint = 0;
      public function LevelLoader(scene:Scene3D) 
      {
         levelLoaders.push(new Flare3DLoader("models/Level_1.f3d", null, scene));
         levelLoaders.push(new Flare3DLoader("models/Level_2.f3d", null, scene));
         levelLoaders.push(new Flare3DLoader("models/Level_3.f3d", null, scene));
         levelLoaders.push(new Flare3DLoader("models/Level_4.f3d", null, scene));
         levelLoaders.push(new Flare3DLoader("models/Level_5.f3d", null, scene));
         for (var i:int = 0; i < levelLoaders.length; i++) 
         {
            var loader:Flare3DLoader = levelLoaders;
            loader.addEventListener(Scene3D.PROGRESS_EVENT, onLoadProgress);
            scene.addEventListener(Scene3D.COMPLETE_EVENT, onLoadComplete);
            loader.addEventListener(Event.COMPLETE, onLoadComplete);
         }
         loadingIndex = 1;
         loadNext();
      }
      
      private function loadNext():void 
      {
         trace("");
         trace("");
         trace("Begin Loading Level " + (loadingIndex + 1))
         levelLoaders[loadingIndex].load();
      }
      
      private function onLoadComplete(e:Event):void 
      {
         trace("Load Complete Level " + (loadingIndex + 1));
         loadingIndex ++;
         if (loadingIndex < 5) {
            loadNext();
         }
      }
      
      private function onLoadProgress(e:Event):void 
      {
         trace("Loading Level " + (loadingIndex + 1), "progress:", Math.round(100 * (levelLoaders[loadingIndex].bytesLoaded / levelLoaders[loadingIndex].bytesTotal)), levelLoaders[loadingIndex].loaded);
      }
      
    }
}


FLARE3D: Please fix this. A loader should still work if an optional parameter is not set. That is why they are optional, right?


Ivan Vodopiviz   «   Reply #5 on: April 20, 2012, 11:38:07 AM »
Hi everyone,

We ran some tests with version 2.0.48 and everything worked fine. Could you send us a failing test case so we can check it out ourselves? Thanks!