Hey all,
I’ve been working on Kirupa’s adding thumbnails to the XML photo gallery. I’ve managed to change the scroller to one that is vertical and reposition it to where I wanted it and everything works fine. Currently the code accounts for when the mouse moves (on the horizontal) to the left or right of the thumbnail container to stop scrolling. However when the mouse moves up and down to scroll (on the vertical) it continues to scroll even though the mouse has moved outside the container area. I’d like for it to only scroll when the mouse is within the 30 pixel - hit_left/right boudaries.
Here’s the code, as you can see the changes have been very little from the original.
function loadXML(loaded) {
if (loaded) {
xmlNode = this.firstChild;
image = [];
description = [];
thumbnails = [];
total = xmlNode.childNodes.length;
for (i=0; i<total; i++) {
image* = xmlNode.childNodes*.childNodes[0].firstChild.nodeValue;
description* = xmlNode.childNodes*.childNodes[1].firstChild.nodeValue;
thumbnails* = xmlNode.childNodes*.childNodes[2].firstChild.nodeValue;
thumbnails_fn(i);
}
firstImage();
} else {
content = "file not loaded!";
}
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("images.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();
this.preloader._visible = true;
if (loaded != filesize) {
this.preloader.preload_bar._xscale = 100*loaded/filesize;
} else {
this.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);
gallery_txt.desc_txt.text = description[p];
picture_num();
}
}
}
function prevImage() {
if (p>0) {
p--;
picture._alpha = 0;
picture.loadMovie(image[p], 1);
gallery_txt.desc_txt.text = description[p];
picture_num();
}
}
function firstImage() {
if (loaded == filesize) {
picture._alpha = 0;
picture.loadMovie(image[0], 1);
gallery_txt.desc_txt.text = description[0];
picture_num();
}
}
function picture_num() {
current_pos = p+1;
gallery_txt.pos_txt.text = current_pos+" / "+total;
}
function thumbNailScroller() {
// thumbnail code!
this.createEmptyMovieClip("tscroller", 1000);
scroll_speed = 12;
tscroller.onEnterFrame = function() {
if ((this._xmouse>=thumbnail_mc._x) && (this._xmouse<=thumbnail_mc._x+thumbnail_mc._width)) {
if ((this._ymouse>=(hit_right._y-30)) && (thumbnail_mc.hitTest(hit_right))) {
thumbnail_mc._y -= scroll_speed;
} else if ((this._ymouse<=(hit_left._y+30)) && (thumbnail_mc.hitTest(hit_left))) {
thumbnail_mc._y += scroll_speed;
}
} else {
delete tscroller.onEnterFrame;
}
};
}
function thumbnails_fn(k) {
thumbnail_mc.createEmptyMovieClip("t"+k, thumbnail_mc.getNextHighestDepth());
tlistener = new Object();
tlistener.onLoadInit = function(target_mc) {
target_mc._y = hit_left._y+(target_mc._height+5)*k;
target_mc.pictureValue = k;
target_mc.onRelease = function() {
p = this.pictureValue-1;
nextImage();
};
target_mc.onRollOver = function() {
this._alpha = 50;
thumbNailScroller();
};
target_mc.onRollOut = function() {
this._alpha = 100;
};
};
image_mcl = new MovieClipLoader();
image_mcl.addListener(tlistener);
image_mcl.loadClip(thumbnails[k], "thumbnail_mc.t"+k);
}
I’m hoping Scotty or someone else could lend me a hand with this.
Thanks