Some1
Some1

Reputation: 67

AS3 | Load image from url with loader error

My goal is: with one FOR function to set position on 10 MovieClips and show image in MovieClips.

My code:

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++;
    }
}

When i start only last item get image from "loader". Image from library - http://puu.sh/7cjxR.png.

How to fix it ?

Upvotes: 0

Views: 66

Answers (1)

Petr Hrehorovsky
Petr Hrehorovsky

Reputation: 1153

Problem is, that you're using just one Loader and only changing its url. You should move loader declaration into the loop. This will create multiple instances of Loader and all images should be delivered.

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++;
    }
}

Upvotes: 1

Related Questions