A ver, basándome en lo q me dices, he intentado resolverlo haciendo algunas modificaciones para conseguir lo q necesito, pero me encuentro con dos baches.
Este es mi código:
Código :
function menuItemBuilder():void{
//menuItemImgBulkloader.name = "menuItemImgBulkloader" + i;
var menuItemImgBulkloader:BulkLoader = new BulkLoader("menuItemImg_bulkloder");
for(var i:Number = 0; i< xmlConfigAccess.sections.section.length(); i++){
//ADD MENU ITEM CONTAINER
//var i:Number = 0;
var menuItem_mc:MovieClip = new MovieClip();
menu_mc.addChild(menuItem_mc);
if(i == 0){
menuItem_mc.y = 0;
menuItem_mc.x = 0;
}else{
menuItemXPos = menuItemXPos + lastMenuItemWidth + xDistanceBetweenMenuItems;
menuItem_mc.y = 0;
menuItem_mc.x = menuItemXPos;
}
//ADD AN INNER SHADOW TO THE MENU ITEM
var menuItemShadow:DropShadowFilter = new DropShadowFilter();
menuItemShadow.color = 0x000000;
menuItemShadow.blurY = 8;
menuItemShadow.blurX = 8;
menuItemShadow.alpha = 1;
menuItemShadow.distance = 0;
menuItemShadow.inner = true;
menuItemShadow.quality = 3;
menuItemShadow.strength = 1.2;
var menuItemShadowFilterArray:Array = new Array(menuItemShadow);
menuItem_mc.filters = menuItemShadowFilterArray;
//LOAD THE MENU ITEM IMG
//Add new bulkloader
//var menuItemImgBulkloader:BulkLoader;
//menuItemImgBulkloader.name = "menuItemImgBulkloader" + i;
//menuItemImgBulkloader = new BulkLoader("menuItemImg_bulkloder");
//Add imgs urls to bulkloader
var menuItemImgUrl:String = xmlConfigAccess.sections.section[i].menuImg;
menuItemImgBulkloader.add(menuItemImgUrl);
trace(menuItemImgBulkloader);
//EVENTS
menuItemImgBulkloader.addEventListener(BulkLoader.PROGRESS, menuImgBulkloaderProgress);
menuItemImgBulkloader.addEventListener(BulkLoader.COMPLETE, menuImgBulkloaderComplete);
//START BULKLOADER
menuItemImgBulkloader.start();
}
function menuImgBulkloaderProgress(Ev:BulkProgressEvent):void{
}
function menuImgBulkloaderComplete(Ev:Event):void{
/*var menuItemImgBulkloader:BulkLoader = BulkLoader.getLoader(menuItemImgUrl);
menuItemImgBulkloader.removeEventListener(BulkLoader.PROGRESS, menuImgBulkloaderProgress);
menuItemImgBulkloader.removeEventListener(BulkLoader.COMPLETE, menuImgBulkloaderComplete);*/
var xmlMenuItemImgBitmap:Bitmap = menuItemImgBulkloader.getBitmap(menuItemImgUrl);
menuItem_mc.addChild(xmlMenuItemImgBitmap);
xmlMenuItemImgBitmap.x = 0;
xmlMenuItemImgBitmap.y = 0;
//ADD MENU ITEM TITLE TEXT FIELD
var menuItemTitle_txt:TextField = new TextField();
menuItemTitle_txt.defaultTextFormat = titleTextFormat;
menuItemTitle_txt.antiAliasType = AntiAliasType.ADVANCED;
menuItemTitle_txt.autoSize = TextFieldAutoSize.LEFT;
menuItemTitle_txt.text = xmlConfigAccess.sections.section[i].sectionTitle;
menuItemTitle_txt.x = 50 - (menuItemTitle_txt.width/2);
menuItemTitle_txt.y = 50 - (menuItemTitle_txt.height/2);
menuItemTitle_txt.embedFonts = true;
menuItemTitle_txt.selectable = false;
menuItemTitle_txt.textColor = 0x000000;
menuItem_mc.addChild(menuItemTitle_txt);
}
}Antes de nada comentar q he metido el START BULCKLOADER y los eventos PROGRESS y COMPLETE en el bucle for porq necesito q llamen en cada vuelta a la función menuImgBulkloaderComplete para q se añadan la imagen y el label correspondiente a cada botón, si los sacase del bucle for, solo añadirian la imagen y el label al último botón del menú.
El primer bache me sale al declarar los eventos PROGRESS y COMPLETE. Me da el típico error de:
TypeError: Error #1010: Un término no está definido y no tiene propiedades.
at MethodInfo-410()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at br.com.stimuli.loading::BulkLoader/_onAllLoaded()
at br.com.stimuli.loading::BulkLoader/_onItemComplete()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at br.com.stimuli.loading.loadingtypes::LoadingItem/onCompleteHandler()
at br.com.stimuli.loading.loadingtypes::ImageItem/onCompleteHandler()
Si comento dichos eventos para q no se ejecuten y tras el START BULKLOADER llamo a la función menuImgBulkloaderComplete, me encuentro con un segundo bache al declarar la variable var xmlMenuItemImgBitmap, la cual me da el siguiente error:
Error #2007: El valor del parámetro child debe ser distinto de null.
at flash.display::DisplayObjectContainer/addChild()
at MethodInfo-410()
at MethodInfo-411()
at MethodInfo-412()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at br.com.stimuli.loading::BulkLoader/_onAllLoaded()
at br.com.stimuli.loading::BulkLoader/_onItemComplete()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at br.com.stimuli.loading.loadingtypes::LoadingItem/onCompleteHandler()