Игра уже довольно большая, весь код писать нету смысла, но постараюсь все моменты связанные с этой библиотекой выложить:
Создание:

Код AS3:
lib = new library();
lib.addEventListener('libraryLoadComplite', gameStart);
А вот сам код загрузки библиотеки.

Код AS3:
//начало загрузки библиотеки
public function library():void {
load(url);//загрузка txt файла с путями ко всем элементам библиотеки
addEventListener(Event.COMPLETE, loadElements);
}
//загрузка элементов
private function loadElements(e:Event):void {
libraryURL=this.data.split('\n');//создается масив url адресов
for (i=0; i<libraryURL.length; i++) {//проход по всем url адресам
libraryURL[i]=libraryURL[i].substring(0,libraryURL[i].length-1);//так-как все элементы в файле написанны с новой строчки, удаляем последний символ пробела в каждом url
url.url=libraryURL[i];//задаем url загружаемого файла
libraryContent[i]= new Loader();//в массив, который в последствии и будет содержать ByteArray-и
libraryContent[i].load(url);//загружаем
libraryContent[i].contentLoaderInfo.addEventListener(Event.COMPLETE, counter);
}
function counter(e:Event):void {//функция вызывается при загрузке каждого элемента, тоесть столько раз, сколько было элементов
j++;//счетчик сколько элементов загружено
if (j==libraryURL.length) {//если кол загруженых элементов равно числу всех элементов то делать:
for (i=0; i<libraryURL.length; i++) {//перебираем все элементы
libraryContent[i]=libraryContent[i].contentLoaderInfo.bytes;//каждому из этих элементов присваиваем ByteArray
}
dispatchEvent(libraryLoadComplite);//событие конец загрузки
}
}
}
Пример использования приводил выше.