# Opening picture centered on host mc (XML gallery)

**URL:** <https://forum.kirupa.com/t/opening-picture-centered-on-host-mc-xml-gallery/205502>\
**Category:** flash\
**Created:** [October 30, 2006, 10:52am UTC](https://forum.kirupa.com/t/opening-picture-centered-on-host-mc-xml-gallery/205502 "2006-10-30T10:52:56Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![InsaneText](https://avatars.discourse-cdn.com/v4/letter/i/4491bb/32.png) [@InsaneText](https://forum.kirupa.com/u/InsaneText)\
**Post date:** [October 30, 2006, 10:52am UTC](https://forum.kirupa.com/t/opening-picture-centered-on-host-mc-xml-gallery/205502/1 "2006-10-30T10:52:56Z")

</div>

Hi,

I’m currently working with the XML gallery at [http://www.kirupa.com/developer/mx2004/xml\_flash\_photogallery2.htm](http://www.kirupa.com/developer/mx2004/xml_flash_photogallery2.htm)

With the code provided below, what do I need to change to make the images load and be centered over the ‘host’ MC (instance name “picture”), rather than having the anchor at the top left?

This is because the images I am loading varying is dimensions so having it load centered over the “picture” MC would help keep the image position… consistantly centered in the gallery.

Current code:

```auto

function loadXML(loaded) {
    if (loaded) {
        xmlNode = this.firstChild;
        image = [];
        description = [];
        total = xmlNode.childNodes.length;
        for (i=0; i<total; i++) {
            image* = xmlNode.childNodes*.childNodes[0].firstChild.nodeValue;
            description* = xmlNode.childNodes*.childNodes[1].firstChild.nodeValue;
        }
        firstImage();
    } else {
        content = "Error: XML not loaded";
    }
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("data/folio.xml");
/////////////////////////////////////
listen = new Object();
listen.onKeyDown = function() {
    if (Key.getCode() == Key.LEFT) {
        prevImage();
    } else if (Key.getCode() == Key.RIGHT) {
        nextImage();
    }
};
Key.addListener(listen);
previous_btn.onRelease = function() {
    prevImage();
};
next_btn.onRelease = function() {
    nextImage();
};
/////////////////////////////////////
p = 0;
this.onEnterFrame = function() {
    filesize = picture.getBytesTotal();
    loaded = picture.getBytesLoaded();
    preloader._visible = true;
    if (loaded != filesize) {
        preloader.preload_bar._xscale = 100*loaded/filesize;
    } else {
        preloader._visible = false;
        if (picture._alpha<100) {
            picture._alpha += 10;
        }
    }
};
function nextImage() {
    if (p<(total-1)) {
        p++;
        if (loaded == filesize) {
            picture._alpha = 0;
            picture.loadMovie(image[p], 1);
            _parent.folioScroll.mc2.folioText.text = description[p];
            picture_num();
        }
    }
}
function prevImage() {
    if (p>0) {
        p--;
        picture._alpha = 0;
        picture.loadMovie(image[p], 1);
        _parent.folioScroll.mc2.folioText.text = description[p];
        picture_num();
    }
}
function firstImage() {
    if (loaded == filesize) {
        picture._alpha = 0;
        picture.loadMovie(image[0], 1);
        _parent.folioScroll.mc2.folioText.text = description[0];
        picture_num();
    }
}
function picture_num() {
    current_pos = p+1;
    numberText.text = current_pos+" / "+total;
}

```

I’m fairly new to ActionScript, too. I’m sure there’s an easy solution though.

Thanks
