2012-08-20 99 views
0

我需要在舞臺上放一些縮略圖。他們有不同的寬度,我需要在加載後得到寬度。我使用偵聽器來查找寬度,但偵聽器應該調用的函數不會運行。eventlistener不執行其功能

爲什麼我的代碼沒有進入loadThumbs的函數?

function makeScroller():void 

{ 

    for (var item:uint = 0; item < 7; item++) 

    { 
     var thisOne:MovieClip = new MovieClip(); 
     var blackBox:Sprite = new Sprite(); 
     var thisThumb:Sprite = new Sprite(); 

     var imageLoader:Loader = new Loader(); 
     imageLoader.load(new URLRequest(thumbList[item])); 
     imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadThumbs); 

     function loadThumbs (e:Event):void 
     { 
      blackBox.graphics.beginFill(0xFFFFFF); 
      blackBox.graphics.drawRect(-1,-1,imageLoader.width,imageLoader.height); 
      thisOne.addChild(blackBox); 
      thisOne.blackBox = blackBox; 
      thisOne.x = tsX; 
      thisThumb.addChild(imageLoader); 
      thisOne.addChild(thisThumb); 
      tsX += imageLoader.width; 
      scroller.addChild(thisOne); 
     } 
    } 
} 
+0

它運行makeScroller()?首先嚐試我的示例 – Neil 2012-08-20 11:35:28

+0

這就是爲什麼我們不嵌套函數。 loadThumbs函數將始終引用thisOne的最後一次迭代,blackBox,thisThumb,imageLoader – 2012-08-20 13:01:10

回答

0

我剛纔試了一下你的代碼更簡化的版本沒有任何問題,也許試試這個:

注意:最好的做法是在打電話之前,負載也加入COMPLETE聽者...

function makeScroller():void 
{ 
    var imageLoader:Loader = new Loader(); 
    imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadedHandler); 
    imageLoader.load(new URLRequest("http://images.imagecomics.com/c/2012/IMG120350.jpg")); 


    function loadedHandler(e:Event):void 
    { 
     trace("loaded"); 
    } 
} 
makeScroller(); 
+1

謝謝you.it的作品。 – femchi 2012-08-23 05:11:52

+0

你可以打勾作爲答案嗎? – Neil 2012-08-23 08:48:58