AS3 |从加载错误的url加载图像

时间:2014-02-27 17:11:09

标签: actionscript-3

我的目标是:使用一个FOR功能在10个MovieClip上设置位置并在MovieClip中显示图像。

我的代码:

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].@name + '/' + loadedXML.folder[folderID].item[i-1].@url  + '.' + loadedXML.folder[folderID].item[i-1].@type + '&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

如何解决?

1 个答案:

答案 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].@name + '/' + loadedXML.folder[folderID].item[i-1].@url  + '.' + loadedXML.folder[folderID].item[i-1].@type + '&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++;
    }
}