2014-02-27 144 views
0

我的目标是:使用一个FOR函数在10个动画片段上设置位置并在动画片段中显示图片。AS3 |使用加载器加载图片时发生错误

我的代码:

function loadOnePageItems(folderID:int):void { 
var it:int=1; 
var openURL:String; 
var loader:Loader = new Loader(); 

for (var i:int = 1; i <= loadedXML.folder[folderID].*.length(); i++) { 
    openURL = ("http://some_site.com/library/cut_img.php?src=" + loadedXML.folder[folderID][email protected] + '/' + loadedXML.folder[folderID].item[i-1][email protected] + '.' + loadedXML.folder[folderID].item[i-1][email protected] + '&w=87&h=64'); 
    loader.load(new URLRequest(openURL)); 
    MovieClip(mc_library.getChildByName('item_' + i)).showcase.addChild(loader); 

    switch (it) { 
     case 10 : 
      mc_library.item_10.x=189,00; 
      mc_library.item_10.y=485,55; 
      break; 
     case 9 : 
      mc_library.item_9.x=63,00; 
      mc_library.item_9.y=485,55; 
      break; 
     case 8 : 
      mc_library.item_8.x=189,00; 
      mc_library.item_8.y=375,55; 
      break; 
     case 7 : 
      mc_library.item_7.x=63,00; 
      mc_library.item_7.y=375,55; 
      break; 
     case 6 : 
      mc_library.item_6.x=189,00; 
      mc_library.item_6.y=265,55; 
      break; 
     case 5 : 
      mc_library.item_5.x=63,00; 
      mc_library.item_5.y=265,55; 
      break; 
     case 4 : 
      mc_library.item_4.x=189,00; 
      mc_library.item_4.y=155,55; 
      break; 
     case 3 : 
      mc_library.item_3.x=63,00; 
      mc_library.item_3.y=155,55; 
      break; 
     case 2 : 
      mc_library.item_2.x=189,00; 
      mc_library.item_2.y=45,55; 
      break; 
     case 1 : 
      mc_library.item_1.x=63,00; 
      mc_library.item_1.y=45,55; 
      break; 
     default : 
      trace("None of the numbers above"); 
      break; 
     } 
     it++; 
    } 
} 

当我开始只有最后一项得到 “装载机” 的形象。图片库 - http://puu.sh/7cjxR.png

如何解决?

+0

对于初学者,您似乎是以欧洲格式('数字,小数)而不是'number.decimals'格式声明所有位置。 – h2ooooooo

+0

你能举个例子吗? – Some1

+0

跟踪'我'并检查它是否真的递增? –

回答

1

问题是,您只使用一个Loader并且只更改其网址。您应该将loader声明移至循环中。这将创建Loader的多个实例,并且应交付所有图像。

function loadOnePageItems(folderID:int):void { 
    var it:int=1; 
    var openURL:String; 

    for (var i:int = 1; i <= loadedXML.folder[folderID].*.length(); i++) { 
     openURL = ("http://some_site.com/library/cut_img.php?src=" 
     + loadedXML.folder[folderID][email protected] + '/' + loadedXML.folder[folderID].item[i-1][email protected] + '.' + loadedXML.folder[folderID].item[i-1][email protected] + '&w=87&h=64'); 
     var loader:Loader = new Loader(); 
     loader.load(new URLRequest(openURL)); 
     MovieClip(mc_library.getChildByName('item_' + i)).showcase.addChild(loader); 

    switch (it) { 
     case 10 : 
      mc_library.item_10.x=189,00; 
      mc_library.item_10.y=485,55; 
      break; 
     case 9 : 
      mc_library.item_9.x=63,00; 
      mc_library.item_9.y=485,55; 
      break; 
     case 8 : 
      mc_library.item_8.x=189,00; 
      mc_library.item_8.y=375,55; 
      break; 
     case 7 : 
      mc_library.item_7.x=63,00; 
      mc_library.item_7.y=375,55; 
      break; 
     case 6 : 
      mc_library.item_6.x=189,00; 
      mc_library.item_6.y=265,55; 
      break; 
     case 5 : 
      mc_library.item_5.x=63,00; 
      mc_library.item_5.y=265,55; 
      break; 
     case 4 : 
      mc_library.item_4.x=189,00; 
      mc_library.item_4.y=155,55; 
      break; 
     case 3 : 
      mc_library.item_3.x=63,00; 
      mc_library.item_3.y=155,55; 
      break; 
     case 2 : 
      mc_library.item_2.x=189,00; 
      mc_library.item_2.y=45,55; 
      break; 
     case 1 : 
      mc_library.item_1.x=63,00; 
      mc_library.item_1.y=45,55; 
      break; 
     default : 
      trace("None of the numbers above"); 
      break; 
     } 
     it++; 
    } 
} 
+0

我在动作小白你可以给我例子的代码吗? – Some1

+0

已被添加到答复中。 –