Xml 加载问题缩略图

Xml 加载问题缩略图,xml,actionscript-3,thumbnails,loading,Xml,Actionscript 3,Thumbnails,Loading,我在加载缩略图时遇到了问题,我设置了每个拇指加载到舞台上的时间间隔。它们中的一些无法按顺序加载,它们缺失,滞后 实际上,我将预加载程序设置为文件大小,但由于我是从XML动态加载的,所以文件大小更小 有人知道解决这个问题的方法吗? 但我真的很烦 我使用XML文件加载,在解析过程中没有任何问题 有时,所有的缩略图都可以加载到舞台上,如果带宽有点慢,它的滞后意味着第一个缩略图正在加载,然后它会突然跳过第二个缩略图,而是加载第三个缩略图,以此类推 有时它可以加载整个缩略图。。。真奇怪 在这里,我设置了一

我在加载缩略图时遇到了问题,我设置了每个拇指加载到舞台上的时间间隔。它们中的一些无法按顺序加载,它们缺失,滞后

实际上,我将预加载程序设置为文件大小,但由于我是从XML动态加载的,所以文件大小更小

有人知道解决这个问题的方法吗? 但我真的很烦

我使用XML文件加载,在解析过程中没有任何问题

有时,所有的缩略图都可以加载到舞台上,如果带宽有点慢,它的滞后意味着第一个缩略图正在加载,然后它会突然跳过第二个缩略图,而是加载第三个缩略图,以此类推

有时它可以加载整个缩略图。。。真奇怪

在这里,我设置了一个计时器来加载每个缩略图

protected static const INTERVAL_TIME:uint       = 1000;
initLoadTime = new Timer(INTERVAL_TIME);
initLoadTime.addEventListener(TimerEvent.TIMER, handleLoadedEachThumbnail, false, 0, true);
initLoadTime.start();

protected function handleLoadedEachThumbnail(event:TimerEvent):void
{
var container:MovieClip = new MovieClip();

if (currentIndex < tabPhoto.length) {
 thumbnailPositionMC = positionEachThumbnail();
 container.addChild(thumbnailPositionMC);
 addChild(container);


 currentIndex++;
}

if (currentIndex == tabPhoto.length) {
 currentIndex = 0;
 initLoadTime.removeEventListener(TimerEvent.TIMER, handleLoadedEachThumbnail);
 initLoadTime.stop();
}
受保护静态常数间隔时间:uint=1000;
initLoadTime=新计时器(间隔时间);
initLoadTime.addEventListener(TimerEvent.TIMER,handleLoadedEachThumbnail,false,0,true);
initLoadTime.start();
受保护函数handleLoadedEachThumbnail(事件:TimerEvent):无效
{
var容器:MovieClip=新的MovieClip();
if(当前索引

}我认为最好创建一个循环并使用加载程序的Event.COMPLETE来知道何时加载下一个缩略图,而不是使用间隔。这样可以避免冲突

var imageLoader:Loader;
var currentImageLoading:uint;
var thumbsToLoad:Array; //array of strings of paths to the thumbnail

function loadThumbs(thumbs:Array):void
{
    currentImageLoading = 0;
    thumbsToLoad = thumbs;
    loadNextThumb();

function loadNextThumb():void
{
    imageLoader = new Loader();
    var imageUrl:String = thumbsToLoad[currentThumbLoading];
    var imageRequest:URLRequest = new URLRequest( imageUrl );
    imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadThumbComplete);
    imageLoader.load( imageRequest );
}

function loadThumbComplete(e:Event):void
{
    // do stuff with loaded thumb here
    var thumb:Sprite = new Sprite();
    thumb.addChild(imageLoader.content);
    trace(thumb.width);
    currentThumbLoading++;
    if (currentThumbLoading < thumbsToLoad.length) {
        loadNextThumb();
    } else {
        // loading cycle is complete
    }
}
var-imageLoader:Loader;
var-currentImageLoading:uint;
var-thumbsToLoad:数组//指向缩略图的路径字符串数组
函数loadThumbs(thumbs:Array):void
{
currentImageLoading=0;
thumbsToLoad=拇指;
loadnexthumb();
函数loadNextThumb():void
{
imageLoader=新加载器();
var-imageUrl:String=thumbsToLoad[currentThumbLoading];
var-imageRequest:URLRequest=新的URLRequest(imageUrl);
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadThumbComplete);
加载(imageRequest);
}
函数loadThumbComplete(e:事件):无效
{
//在这里用大拇指做东西
变量thumb:Sprite=新Sprite();
addChild(imageLoader.content);
痕迹(拇指宽度);
currentThumbLoading++;
if(当前ThumbLoading
在评论后编辑


我修复了loadThumbComplete以获取事件参数。要获取加载的thumb的宽度,我更喜欢从imageLoader获取内容并将其放入精灵中。

我认为最好创建一个循环并使用加载程序的event.COMPLETE来知道何时加载下一个缩略图,而不是使用间隔。这样,您将可以旧冲突

var imageLoader:Loader;
var currentImageLoading:uint;
var thumbsToLoad:Array; //array of strings of paths to the thumbnail

function loadThumbs(thumbs:Array):void
{
    currentImageLoading = 0;
    thumbsToLoad = thumbs;
    loadNextThumb();

function loadNextThumb():void
{
    imageLoader = new Loader();
    var imageUrl:String = thumbsToLoad[currentThumbLoading];
    var imageRequest:URLRequest = new URLRequest( imageUrl );
    imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadThumbComplete);
    imageLoader.load( imageRequest );
}

function loadThumbComplete(e:Event):void
{
    // do stuff with loaded thumb here
    var thumb:Sprite = new Sprite();
    thumb.addChild(imageLoader.content);
    trace(thumb.width);
    currentThumbLoading++;
    if (currentThumbLoading < thumbsToLoad.length) {
        loadNextThumb();
    } else {
        // loading cycle is complete
    }
}
var-imageLoader:Loader;
var-currentImageLoading:uint;
var thumbsToLoad:Array;//指向缩略图的路径字符串数组
函数loadThumbs(thumbs:Array):void
{
currentImageLoading=0;
thumbsToLoad=拇指;
loadnexthumb();
函数loadNextThumb():void
{
imageLoader=新加载器();
var-imageUrl:String=thumbsToLoad[currentThumbLoading];
var-imageRequest:URLRequest=新的URLRequest(imageUrl);
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadThumbComplete);
加载(imageRequest);
}
函数loadThumbComplete(e:事件):无效
{
//在这里用大拇指做东西
变量thumb:Sprite=新Sprite();
addChild(imageLoader.content);
痕迹(拇指宽度);
currentThumbLoading++;
if(当前ThumbLoading
在评论后编辑


我修复了loadThumbComplete以获取事件参数。要获取加载的thumb的宽度,我更喜欢从imageLoader获取内容并将其放入精灵中。

我已将tabPhoto和tabThumbWidthIncrement声明为Vector

var tabPhoto:Vector.<ThumbInfo> = new Vector.<ThumbInfo>;
var tabThumbWidthIncrement:Vector<uint> = new Vector.<uint>;
var tabPhoto:Vector.=新向量。;
var tabThumbWidthIncrement:向量=新向量。;

我已将tabPhoto和tabThumbWidthIncrement声明为向量

var tabPhoto:Vector.<ThumbInfo> = new Vector.<ThumbInfo>;
var tabThumbWidthIncrement:Vector<uint> = new Vector.<uint>;
var tabPhoto:Vector.=新向量。;
var tabThumbWidthIncrement:向量=新向量。;

你用什么加载缩略图?UILoader?请发布完整的代码,包括解析xml。谢谢。你用什么加载缩略图?UILoader?请发布完整的代码,包括解析xml。谢谢。哈哈写了同样的答案:)@Qpixo你也可以使用greensock.com上的加载类,这是这里的问题有点过火,但它们包含高级加载功能。我使用URLLoader从XML文件中加载//文件名,在主加载程序中调用它=新URLLoader();loader.load(新URLRequest(Filename));addFileListener(加载程序,回调);@Qpixo这与我在回答中所说的不一样。@KnuckBubuck:为什么你的函数loadThumbComplete()没有参数(event:event)?而currentThumbLoading++应该在if中(currentThumbLoadingerror#1009:无法访问空对象引用的属性或方法。使用imageLoader.width,它给了我0如何获取每个拇指的宽度???哈哈写了相同的答案:)@Qpixo你可以d也使用greensock.com中的加载类,这对于这里的问题来说有点过分了,但是它们包含了高级加载功能。我使用URLLoader从XML文件中加载。//文件名,在main loader=new URLLoader();loader.load(new URLRequest(Filename));addFileListener(loader,callBack)中调用它@