Search code examples
actionscript-3papervision3d

Intermittent/staggered loading of an object


I've just recently tried my hand at actionscript 3 and have come across a road block. How do I go about rendering the cubes (cube1) intermittently, ie. staggered loading. I need the cubes to load a split second from each other.

Below is a snippet of what I have so far:

var rows:int = 5;
var cols:int = 3;
var spacery:int = 100;
var spacerx:int = 120;
var box_count:int = 8;

for(var i:int; i < box_count; i++)   {                                              
    cube1 = new Cube(ml,100,10,80,1,1,1);               
    cube1.y = ((i % rows)) * (cube1.x + spacery);
    cube1.x = Math.floor(i/rows) * (cube1.x +spacerx);
    cube1.z = 0;

    bigBox.addChild(cube1); 
}

Solution

  • //Create an array out side the function; as a global (instance) variable:
    var cubes:Array = [];
    
    //instead of bigBox.addChild(cube1), store them in the array:
    cubes.push(cube1);
    
    //initialize a timer outside after for loop
    //Fire every 100 milliseconds, box_count times
    var timer:Timer = new Timer(100, box_count);
    timer.addEventListener(TimerEvent.TIMER, onTick);
    timer.addEventListener(TimerEvent.TIMER_COMPLETE, onTickDone);
    
    function onTick(e:Event):void
    {
      bigBox.addChild(cubes[timer.currentCount]);
    }
    function onTickDone(e:Event):void
    {
      cubes = null;
      timer.removeEventListener(TimerEvent.TIMER, onTick);
      timer.removeEventListener(TimerEvent.TIMER_COMPLETE, onTickDone);
      timer = null;
    }