程序流和对象的索引问题啊!
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,comHandler);
楼主知道comHandler什么时候执行吗?当loader.contentLoaderInfo获得加载对象信息的时候,这代码的实际执行会被延迟。
分析一下你的程序流:
for (i; i
……
loader=new Loader();//步骤一:创建新的Loader对象,并把loader的索引指向新的实例
loader.load(url);//步骤二:让新的loader读取信息url
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,comHandler);//步骤三:读取对象信息成功时执行comHandler函数,---------但是还没成功的时候程序流就返回步骤一了。一直执行了 imgmassageXml.content 次,你的comHandler都还没执行呢。
}
然后到了你comHandler真正执行的时候,
imgsArray.push(loader); 一共push了 imgmassageXml.content 个loader,这些loader是同一个对象。
不信你试试 trace(imgsArray[0] == imgsArray[1],imgsArray[0] == imgsArray[2])。
楼主一点也不厚道,要想让别人帮你解决问题,就要有诚意,不要只截取部分代码,这没办法测试,所以你应该做的就是把你的东西打个包传上来,不然,哪个人愿意再去写一个XML,再去创建一组图片。我想任何一个程序员都不敢在没有测试的情况下,给你正确答案?所以只能根据你的提示猜测。我的猜测是如下,希望对你有帮助。
if (imgsArray.length==imgmassageXml.content) {
creatImgBtnMc();
}
这个条件是数组长度等于载入的XML根的长度,然后执行creatImgBtnMc(); 应该是你没有对它进循环读取数组索引,然后,直接使用索引,所以才出现你的问题。
可能图层重叠了。。。。mc1和mc2在什么位置实例的你也没贴出来啊,可能是他俩的问题。。。