2010-08-18 111 views
1

我在加載縮略圖時遇到了問題,我設置了每個手指在舞臺上加載的時間間隔。他們中有些人不能爲了加載順序,他們缺少,是滯後......加載問題縮略圖

其實,我設置一個預加載文件的大小,但因爲我從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(); 
} 

}

+0

? UILoader的? – Sandro 2010-08-18 18:45:52

+0

請發佈完整的代碼,包括解析XML,請。 謝謝。 – Eugene 2010-08-18 23:58:20

回答

1

我認爲最好是創建一個循環並使用加載器的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 
    } 
} 

評論

後編輯我固定loadThumbComplete採取事件參數。爲了獲得加載的拇指的寬度,我更喜歡從imageLoader中獲取內容並將其放入Sprite中。

+0

哈哈寫的是相同的答案:) @Qpixo你也可以使用greensock.com的加載類,這對於這裏的問題來說有點矯枉過正,但它們包含了高級加載功能 – PatrickS 2010-08-19 00:37:56

+0

是的,我使用URLLoader從XML文件。 //文件名,調用它在主 裝載機=新的URLLoader(); loader.load(new URLRequest(filename)); addFileListener(loader,callBack); – Qpixo 2010-08-19 14:51:16

+0

@Qpixo這不同於我在我的答案中提出的。 – knuckfubuck 2010-08-19 16:27:23

0

我宣佈tabPhoto和tabThumbWidthIncrement因爲你在使用加載縮略圖矢量

var tabPhoto:Vector.<ThumbInfo> = new Vector.<ThumbInfo>; 
var tabThumbWidthIncrement:Vector<uint> = new Vector.<uint>;