package Packer {
import djarts.core.CacheManager;
import djarts.core.*;
import djarts.display.*;
public class GraphicDefClipCollection
{
public var ClipsLoaded = null;
public function GraphicDefClipCollection(graphicDefs:Array = null, callback = null)
{
if (graphicDefs != null) LoadDefs(graphicDefs, callback);
}
var defs = null;
public function LoadDefs(graphicDefs:Array, callback)
{
defs = graphicDefs;
ClipsLoaded = callback;
LoadNextDef();
}
public function LoadNextDef()
{
if (defs.length == 0)
{
Done();
return;
}
var currentDef = defs.shift();
var g = GraphicFactory.Instance().GetGraphicByID(currentDef.ID, null, GraphicLoaded);
if (GraphicFactory.Instance().LoadedOK(g))
{
GraphicLoaded(null, g);
}
}
var clips = new Array();
protected function GraphicLoaded(caller, g)
{
clips.push(g);
LoadNextDef();
}
protected function Done()
{
if (ClipsLoaded != null) ClipsLoaded(clips);
}
}
}