Прерывистая / ступенчатая загрузка объекта - PullRequest
1 голос
/ 14 июня 2010

Я только недавно попробовал свои силы в ActionScript 3 и наткнулся на дорожный блок Как мне сделать рендеринг кубов (cube1) с перерывами, т.е. пошаговая загрузка. Мне нужны кубы для загрузки доли секунды друг от друга.

Ниже приведен фрагмент того, что у меня есть:

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); 
}

1 Ответ

2 голосов
/ 14 июня 2010
//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;
}
...